我创建了一个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>
有人可以在这里说清楚。
由于
答案 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);
}
});
/勺子喂食结束