ajax请求在OS X Paw应用程序和cURL中工作,但与Javascript/jQuery不同
我对ajax请求比较陌生,正在使用Paw应用程序调试一个请求。请求在Paw本身中运行良好,cURL Paw生成的请求也可以运行。但是,Paw的JavaScript(jQuery)代码不起作用。它获得一个成功代码(200),但返回的数据是ajax请求在OS X Paw应用程序和cURL中工作,但与Javascript/jQuery不同,javascript,jquery,ajax,paw-app,Javascript,Jquery,Ajax,Paw App,我对ajax请求比较陌生,正在使用Paw应用程序调试一个请求。请求在Paw本身中运行良好,cURL Paw生成的请求也可以运行。但是,Paw的JavaScript(jQuery)代码不起作用。它获得一个成功代码(200),但返回的数据是 { message: "Error: Not found city", cod: "404" }. 它应该能反映芝加哥当前的天气状况 这是Paw生成的请求(删除无关的换行符和我的Mashape键除外): 对可能出现的问题有什么想法吗?谢谢 问题似乎是您覆盖了
{ message: "Error: Not found city", cod: "404" }.
它应该能反映芝加哥当前的天气状况
这是Paw生成的请求(删除无关的换行符和我的Mashape键除外):
对可能出现的问题有什么想法吗?谢谢 问题似乎是您覆盖了查询api时使用的数据(即查询天气的位置)
当您使用空对象覆盖数据时,Open Weather API不知道您要查找哪个城市。这实际上是我们的JavaScript/jQuery代码生成器中的一个错误。我修复了这个错误,所以现在URL参数编码良好:要更新,在Paw中进入Paw菜单>扩展>检查扩展更新。谢谢!这就是问题所在。对Paw jQuery代码生成器的编辑删除了该部分,还删除了“contentType:”application/json”。
$.ajax({
url: "https://community-open-weather-map.p.mashape.com/weather",
type: "POST",
data: {
"lang": "en",
"lat": "41.8369",
"lon": "-87.6847",
"units": "metric",
},
headers: {
"X-Mashape-Authorization": "",
},
contentType: "application/json",
data: JSON.stringify({
})
})
.done(function(data, textStatus, jqXHR) {
console.log("HTTP Request Succeeded: " + jqXHR.status);
console.log(data);
})
.fail(function(jqXHR, textStatus, errorThrown) {
console.log("HTTP Request Failed");
})
.always(function() {
/* ... */
});
$.ajax({
url: "https://community-open-weather-map.p.mashape.com/weather",
type: "POST",
// you set data here:
data: {
"lang": "en",
"lat": "41.8369",
"lon": "-87.6847",
"units": "metric",
},
headers: {
"X-Mashape-Authorization": "",
},
contentType: "application/json",
// you overwrite data here with an empty object - so remove this!
data: JSON.stringify({ // <-- remove
// remove
}) // <-- remove
})
$.ajax({
url: "https://community-open-weather-map.p.mashape.com/weather",
type: "POST",
data: {
"lang": "en",
"lat": "41.8369",
"lon": "-87.6847",
"units": "metric",
},
headers: {
"X-Mashape-Authorization": "",
},
contentType: "application/json"
})
.done(function(data, textStatus, jqXHR) {
console.log("HTTP Request Succeeded: " + jqXHR.status);
console.log(data);
})
.fail(function(jqXHR, textStatus, errorThrown) {
console.log("HTTP Request Failed");
})
.always(function() {
/* ... */
});