成功JSONP调用的错误响应

时间:2012-06-18 16:00:02

标签: jquery ajax wcf web-services

我创建了一个Cross Origin兼容的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],parsererror,错误:   jQuery17206724130902069609_1340034989481未被调用

如果我转到浏览器并输入我得到的网址:

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

有人可以在这里说清楚。

由于

1 个答案:

答案 0 :(得分:1)

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

所以响应看起来应该是这样的:

jQuery17206724130902069609_1340034989481('some param');

默认情况下,jquery会将名为callback的param添加到url中,该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);
    }
});

/勺子喂食结束