我尝试将表单帖子提交到另一个站点并收集它显示的JSON响应。我使用以下内容,但我不确定如何获得回复。
$("form input[type=submit]").on("click", function (ev) {
var result = '';
ev.preventDefault();
$('#myform').submit();
});
我会使用.post()
或.ajax()
;但是,我最好能告诉我无法使用它,因为我收到了错误......
XMLHttpRequest无法加载http://example.com/api/login/。 No' Access-Control-Allow-Origin'标头出现在请求的资源上。起源' localhost'因此不允许访问。
修改
$('#mybutton').click(function () {
$.ajax({
url: "http://example.com/api/login/",
type: "POST",
data: "name=user%40domain.com&pass=apassword",
dataType: "jsonp",
success: function (result) {
alert("success");
},
error: function (jqXHR, tranStatus, errorThrown) {
alert("error");
}
});
});
答案 0 :(得分:2)
您可以将表单提交到其他网站,但无法访问您网页中的结果,除非目标网站允许您(并且您正在使用ajax
) 。 Same Origin Policy正好可以防止出现这种情况。目标网站可以允许您通过Cross-Origin Resource Sharing访问。
您可以提交表单并完全放弃控制(正常表单提交),或您可以使用ajax
并遵守SOP(除非网站使用CORS允许)它)。