2010-07-28 64 views
1

我想使用的getJSON提交的用户名和密码的互联网服务和提醒“喜”的getJSON问题(jQuery的)

这是我的代码:

$.getJSON(address+"?format=json&jsoncallback=?", {CustomerEmail: email, Password: password}, 
    function(){ 
    alert("hi"); 
}); 

的HTTP标头提交200消息所以它应该没问题,但它没有进入功能,有谁知道为什么请?

+0

页面是否位于同一台服务器上?您很可能违反了同源策略:http://en.wikipedia.org/wiki/Same_origin_policy – 2010-07-28 09:02:29

+0

@Felix Kling:只要'jsoncallback ='在查询字符串中,它就被视为'jsonp',isnt它? – jAndy 2010-07-28 09:06:54

+0

没有不在同一台服务器 – 2010-07-28 09:06:58

回答

4

页面是否位于同一台服务器上?最有可能的是你违反了same-origin policy

你可以利用JSONP.getJSON()希望被命名的callback代替jsoncallback参数: “回调=”

JSONP

如果URL中包含字符串在URL中,请求被视为JSONP。有关更多详细信息,请参阅$.ajax()中关于jsonp数据类型的讨论。

因此使其工作你的情况,你可以尝试用$.ajax()

$.ajax({ 
    url: address+"?format=json", 
    data: {CustomerEmail: email, Password: password}, 
    dataType: "jsonp", 
    jsonp: "jsoncallback", 
    success: function(data) { 
    alert("hi"); 
    } 
}); 
+0

然后我会如何提交数据到webservice请? – 2010-07-28 09:25:36

+0

@C:哦,对不起,我忘了添加这个,我更新了我的答案(但实际上它在文档中有描述;)) – 2010-07-28 09:41:14

1

检查,如果您收到的JSON数据是有效的。尤其是,所有字符串(即使在属性名称中)都被正确地引用。

从jQuery的文档:

重要:对于jQuery 1.4,如果JSON文件包含语法错误, 请求通常会失败 默默。由于这个原因避免频繁手动编辑JSON数据的 。 JSON是 数据交换格式,其语法规则 比JavaScript的对象字面符号更严格。 例如,所有以JSON表示 的字符串,无论它们是属性 还是值,都必须包含在 双引号中。有关JSON 格式的详细信息,请参见http://json.org/