1

我对 ajax 请求比较陌生,并且正在使用 Paw 应用程序尝试调试一个。该请求在 Paw 本身中可以正常工作,并且 cURL Paw 生成的也可以。但是,Paw 的 JavaScript (jQuery) 代码不起作用。它得到一个成功代码(200),但返回的数据是

{ message: "Error: Not found city", cod: "404" }. 

它应该返回芝加哥当前的天气。

这是 Paw 生成的请求(除了删除无关的换行符和我的 Mashape 键):

$.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() {
    /* ... */
});

关于可能出现问题的任何想法?谢谢!

4

1 回答 1

1

问题似乎是您覆盖了查询 api 的数据(即您查询天气的位置)。

$.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() {
    /* ... */
});

当您使用空对象覆盖数据时,Open Weather API 不知道您要查找的城市。

于 2015-06-29T22:53:02.963 回答