为什么我的AJAX调用将web主机作为URL的前缀?

时间:2015-08-22 12:28:31

标签: javascript jquery ajax

我在我的控制台中获得以下内容

GET http://localhost/FCC%20Projects/Show%20Local%20Weather/api.openweathermap.o…9999&lat=43.3104064&APPID=4c45bb0e6071b74cf43da0d4aa498377&_=1440245698059 404 (Not Found)

如果我取出http://localhost/FCC%20Projects/Show%20Local%20Weather/部分并将其余内容粘贴到浏览器栏中,我会从api服务获得正确的响应。 我在gh-pages上遇到同样的问题,除了它以GitHub地址为前缀。 http://adoyle2014.github.io/FCC-ShowLocalWeather/

function apiCall(lat, long) {
  $.ajax({
    url: "api.openweathermap.org/data/2.5/weather?",
    jsonp: "jsonp",
    dataType: "jsonp",
    data: {
      lon: long,
      lat: lat,
      APPID: apiKey
    },
    success: function (response) {
      parseWeather(response);
    }
  });

为什么这个api调用会在网址前加上网址?

2 个答案:

答案 0 :(得分:2)

使用HTTP或HTTPS,否则它将被视为本地资源。例如:

url: "http://api.openweathermap.org/data/2.5/weather?",

答案 1 :(得分:0)

在路径中提供/。如下 -

   function apiCall(lat, long) {
        $.ajax({
            url: "/api.openweathermap.org/data/2.5/weather?",
            jsonp: "jsonp",
            dataType: "jsonp",
            data: {
                lon: long,
                lat: lat,
                APPID: apiKey
            },
            success: function (response) {
                parseWeather(response);
            }
        });