我对 jquery post 函数有一个相当令人沮丧的问题,这可能源于不了解它是如何正常工作的。
我有一个函数应该将一些表单信息发布到我编写的 php 脚本中,然后该脚本针对 API 运行 curl 请求以绕过 javascript 的跨域策略。只要它提交到“http”,它似乎就可以正常工作,但是当我将它发送到“https”时,表单永远不会被提交。
我在我的电脑上运行了wireshark,它没有显示到目标ip的流量,直到我让url使用http。我在服务器上有基本的身份验证,所以我通过 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",
$j("#spoke_ticket").serialize(),
function(msg) {
log_status(msg);
fade_status();
$j(':input','#createtheticket')
.not(':button, :submit, :reset, :hidden')
.val('')
.removeAttr('checked')
.removeAttr('selected');
});
关于为什么没有发送流量的任何想法?如果我遗漏了一些关键信息或任何内容,请告诉我。
谢谢您的帮助