getJSON问题(jquery)

时间:2010-07-28 09:00:03

标签: jquery json

我正在尝试使用getJSON向web服务提交用户名和密码并提醒“hi”

这是我的代码:

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

http标头提交了200条消息,所以它应该没问题,但它没有进入该功能,有人知道为什么请这样做吗?

2 个答案:

答案 0 :(得分:4)

页面是否位于同一台服务器上?您很可能违反了same-origin policy

您可以使用JSONP.getJSON()期望参数名为callback,而不是jsoncallback

  

JSONP

     

如果网址包含字符串“callback =?”在URL中,请求被视为JSONP。有关详细信息,请参阅$.ajax()中有关jsonp数据类型的讨论。

因此,为了使其适用于您的情况,您可以尝试使用$.ajax()

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

答案 1 :(得分:1)

检查您收到的JSON数据是否有效。特别是,所有字符串(即使在属性名称中)都被正确地“引用”。

来自jQuery文档:

  

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