我对
jquery post函数有一个相当令人沮丧的问题,可能源于不了解它是如何正常工作的.
我有一个函数,应该将一些表单信息发布到我编写的PHP脚本,然后该脚本运行针对API的curl请求以绕过javascript的跨域策略.它似乎工作正常,只要它提交“http”,但当我发送到“https”时,表单永远不会被提交.
我在我的计算机上运行wireshark,它显示没有流量到目标IP,直到我使用URL.我在服务器上有基本身份验证,所以我通过URL传递用户和密码,但没有测试,并得到相同的结果.
这是不工作的代码:
$j.post("https://<api user>:<password>@<ip>:444/ProxyScript.PHP",$j("#spoke_ticket").serialize(),function(msg) { log_status(msg); fade_status(); $j(':input','#createtheticket') .not(':button,:submit,:reset,:hidden') .val('') .removeAttr('checked') .removeAttr('selected'); });
这是工作功能:
$j.post("http://<other ip>/ProxyScript.PHP",:hidden') .val('') .removeAttr('checked') .removeAttr('selected'); });
关于为什么没有发送流量的任何想法?
如果我遗漏了一些关键信息或任何内容,请告诉我.
谢谢您的帮助
为什么不使用代理来克服跨域问题?听起来更容易.一个简单的例子是当我想要为各县,道路名称等检索丹麦政府国家地理数据时(幸运的是,他们的数据是json或XML可选)
原文链接:https://www.f2er.com/ajax/159973.html简化的proxy.PHP
<? header('Content-type: application/json'); $url=$_GET['url']; $html=file_get_contents($url); echo $html; ?>
在ajax中,获取县/边界的纬度/长度
var url= "proxy.PHP?url=https://geo.oiorest.dk/"+type+"/"+nr+"/graense.json"; $.ajax({ url: url,dataType: 'json',success: function (data) { ... });
注意https – 网址可能是,例如,https://geo.oiorest.dk/kommuner/0810/graense.json