发送JSON作为阿贾克斯的数据,并得到响应
问题描述:
我想请求为JSON到API,并得到回应,我和邮递员尝试过了,我得到了响应:发送JSON作为阿贾克斯的数据,并得到响应
JSON请求API:
{
"apikey":"&^$%#@!jwebdpqodp9fgkwjebfkdpqihdqlwkndqp"
}
响应,我得到了在邮递员,它是确定
{
"status": 200,
"result": {
"winner": "s",
"options": {
"1": "mar",
"2": "feb",
"3": "jan",
"4": "aug"
},
"question": "how old are u?",
"answer": 3
}
}
我的问题是我想给阿贾克斯reque ST并得到response.i试试这个代码,但它没有得到任何回应?
var data = {"apikey":"&^$%#@!jwebdpqodp9fgkwjebfkdpqihdqlwkndqp"};
$.ajax({
type:'post',
dataType:'json',
url:'http://207.154.251.233:8039/app_dev.php/question/get',
data:JSON.stringify(data),
success:(function (response) {
alert(response);
})
})
答
使用此修改后的代码:
var data = {"apikey":"&^$%#@!jwebdpqodp9fgkwjebfkdpqihdqlwkndqp"};
$.ajax({
type:'post',
dataType:'json',
url:'http://207.154.251.233:8039/app_dev.php/question/get',
contentType: 'application/x-www-form-urlencoded; charset=UTF-8',
crossDomain: true,
data:JSON.stringify(data),
success:(function (response) {
alert(response);
})
});
而且如果你的脚本由不同的主机上运行,你必须使用交叉起源访问权限。对于这一点,使用
Access-Control-Allow-Origin: http://foo.example
如果你的应用程序中内置了PHP然后使用:
header("Access-Control-Allow-Origin: *");
// or your script's host, e.g http://foo.example instead of "*"
答
你所得到的回应是对象类型,并且将显示为[对象] [对象]。如果您想对其执行alert
,则需要JSON.stringify
。我建议使用console.log
代替,它更适合调试。
添加一个错误处理程序来找出为什么 – charlietfl
@charlietfl你能告诉我怎么做吗? – sepehr
尝试从''apikey''周围的数据中删除引号,就像'{apikey:“&^ $%#@!jwebdpqodp9fgkwjebfkdpqihdqlwkndqp”};' –