【问题标题】:Error response from successful JSONP call来自成功 JSONP 调用的错误响应
【发布时间】:2012-06-18 16:00:02
【问题描述】:

我创建了一个跨域兼容的 WCF 服务(这花了我 4 天的时间研究!)我已经完成了一切工作,但现在我遇到了 jQuery 请求的问题。它给了我一个我不知道的错误。

谁能给我一个关于在这里做什么的想法。

我的 jQuery:

<script type="text/javascript">
$.ajax({
    url: 'http://localhost:8000/EchoWithGet',
    data: 's=boo!',
    type: 'GET',
    dataType: 'jsonp',
    success: function(res) {
        alert('yay');
    },
    error: function(a,b,c) {
    alert(a + ", " + b + ", " + c);
    }
});
</script>

错误响应:

[object Object],解析器错误,错误: jQuery17206724130902069609_1340034989481 未被调用

如果我进入浏览器并输入我得到的 URL:

<string xmlns="http://schemas.microsoft.com/2003/10/Serialization/">OK</string>

有人可以在这里解释一下吗?

谢谢

【问题讨论】:

    标签: jquery ajax wcf web-services


    【解决方案1】:

    您应该从该页面返回一个 javascript 调用。这就是 jsonp 的工作原理。

    所以响应应该是这样的:

    jQuery17206724130902069609_1340034989481('some param');
    

    默认情况下,jquery 会将名为 callback 的参数添加到指定服务器应响应的上述回调名称的 url。

    我建议阅读ajax docs,尤其是处理 jsonp 的部分。并查找如何jsonp works

    勺子喂食开始:

    让你的服务器响应:

    iwillreaduponjsonp({'status':'ok'});
    

    像这样在客户端发出 jsonp 请求:

    $.ajax({
        url: 'http://localhost:8000/EchoWithGet',
        data: 's=boo!',
        type: 'GET',
        dataType: 'json',
        jsonp: false, jsonpCallback: "iwillreaduponjsonp",
        success: function(res) {
            alert('yay');
        },
        error: function(a,b,c) {
        alert(a + ", " + b + ", " + c);
        }
    });
    

    /勺子喂完

    【讨论】:

    • 你可以从不响应 xml 开始
    • 好的,现在我已经更改了服务以使用 JSON 进行响应,所以它现在返回“OK”但我仍然收到相同的错误
    • 你一定没有阅读我的回复。您需要让服务器响应一个 javascript 调用。我会用更大程度的勺子喂食来编辑我的答案
    猜你喜欢
    • 2012-10-12
    • 2017-05-25
    • 1970-01-01
    • 2014-02-05
    • 2018-06-20
    • 2012-05-26
    • 1970-01-01
    • 2019-04-01
    • 2017-02-27
    相关资源
    最近更新 更多