是否可以提交POST而不是AJAX,并在jQuery中获取JSON响应?

时间:2014-08-02 14:19:43

标签: jquery asp.net json vb.net post

我尝试将表单帖子提交到另一个站点并收集它显示的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");
            }
        });

    });

1 个答案:

答案 0 :(得分:2)

您可以将表单提交到其他网站,但无法访问您网页中的结果,除非目标网站允许您(并且您正在使用ajax) 。 Same Origin Policy正好可以防止出现这种情况。目标网站可以允许您通过Cross-Origin Resource Sharing访问。

您可以提交表单并完全放弃控制(正常表单提交),您可以使用ajax并遵守SOP(除非网站使用CORS允许)它)。