我正在尝试使用getJSON向web服务提交用户名和密码并提醒“hi”
这是我的代码:
$.getJSON(address+"?format=json&jsoncallback=?", {CustomerEmail: email, Password: password},
function(){
alert("hi");
});
http标头提交了200条消息,所以它应该没问题,但它没有进入该功能,有人知道为什么请这样做吗?
答案 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/。