为什么我的AJAX调用前缀web主机的url
Why does my AJAX call prefix the web host to the url?
我在控制台中得到以下内容
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服务获得正确的响应。我得到相同的问题在高页,除了它是前缀与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调用在url前面加上当前的网站地址?
在API URL前加上当前URL的原因是您提供的URL不以http://
开头,这意味着它是一个相对URI。他们认为这个URI是相对于当前URL的,所以他们把当前URL加到它前面,然后从那里开始。
http://
:
开始URI:function apiCall(lat, long) {
$.ajax({
//This is our fix:
url: "http://api.openweathermap.org/data/2.5/weather?",
jsonp: "jsonp",
dataType: "jsonp",
data: {
lon: long,
lat: lat,
APPID: apiKey
},
success: function (response) {
parseWeather(response);
}
});
}
有关相对url和绝对url的更多信息,请参阅印第安纳大学的教程
使用HTTP或HTTPS,否则将被视为本地资源。例子:
url: "http://api.openweathermap.org/data/2.5/weather?",
提供/
in path。如下-
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);
}
});
相关文章:
- 如何使用url加载程序在webpack中导入多个图像
- 获取主机 URL + 目标 URL 的时间
- 如何使用jquery从url中提取主机名
- Node.js/MongoDB:如何使用module.exports将本地主机数据库URL传递给服务器.js文件
- 正则表达式 url 与本地主机匹配
- JavaScript 中的主机名 url 正则表达式
- 更改并显示url的主机名
- Windows脚本主机文件大小限制无法检索引用的URL异常
- 获取使用主机名获取URL的脚本
- 在IIS中部署到本地主机后未正确调用JavaScript url
- JS:从url获取主机名,正则表达式不工作
- 为什么我的AJAX调用前缀web主机的url
- 如何设置背景图像url没有自动前缀的主机在Chrome
- Base64编码图像主机url或服务器文件路径
- 用javascript创建锚href,而不是在链接中有主机url
- 如何在jquery中连接当前url主机名到字符串
- JavaScript -将URL解析为主机名
- 多个主机名对每个URL都需要一个唯一的iframe
- 如何根据您的主机设置url基础
- 用javascript进一步解析url主机名