2017-10-15 32 views
2

我想请求为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); 
}) 
}) 
+0

添加一个错误处理程序来找出为什么 – charlietfl

+0

@charlietfl你能告诉我怎么做吗? – sepehr

+0

尝试从''apikey''周围的数据中删除引号,就像'{apikey:“&^ $%#@!jwebdpqodp9fgkwjebfkdpqihdqlwkndqp”};' –

回答

0

使用此修改后的代码:

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 "*" 
0

你所得到的回应是对象类型,并且将显示为[对象] [对象]。如果您想对其执行alert,则需要JSON.stringify。我建议使用console.log代替,它更适合调试。