Javascript API、CORS、MIME、XMLHttpRequest无法加载,问题
我是一个初学者程序员/程序员,我已经开始做本地天气应用程序的事情。当尝试从API获取一段数据时,我遇到了以下错误(首先是trued.getJSON()): 1.“CORS策略已阻止访问“…”处的字体” 2.“引导工具提示需要系带。” 3“.XMLHttpRequest无法加载“…”请求的资源上不存在“Access Control Allow Origin”头。“ 然后我尝试了一种变通方法,将.ajax()与jsonp结合使用,但随后我遇到了以下错误: 1.“CORS策略已阻止访问“…”处的字体” 2.拒绝从“…”执行脚本,因为其MIME类型(“应用程序/json”)不可执行,并且启用了严格的MIME类型检查 现在我不知道该怎么办。另外,我想知道为什么在第一个示例中出现了Tether错误,因为一小时前我没有在那里得到这个错误,而在第二个示例(使用jsonp的示例)中仍然没有得到它Javascript API、CORS、MIME、XMLHttpRequest无法加载,问题,javascript,jquery,ajax,twitter-bootstrap,Javascript,Jquery,Ajax,Twitter Bootstrap,我是一个初学者程序员/程序员,我已经开始做本地天气应用程序的事情。当尝试从API获取一段数据时,我遇到了以下错误(首先是trued.getJSON()): 1.“CORS策略已阻止访问“…”处的字体” 2.“引导工具提示需要系带。” 3“.XMLHttpRequest无法加载“…”请求的资源上不存在“Access Control Allow Origin”头。“ 然后我尝试了一种变通方法,将.ajax()与jsonp结合使用,但随后我遇到了以下错误: 1.“CORS策略已阻止访问“…”处的字体”
.getJSON()
代码:
.ajax()
code:在ajax
调用中添加所需的头
根据您的需要,有几种解决方案
如果要向单个请求添加自定义头(或一组头),只需添加头
属性:
// Request with custom header
$.ajax({
url: 'foo/bar',
headers: { 'x-my-custom-header': 'some value' }
});
如果要向每个请求添加默认头(或一组头),请使用$.ajaxSetup()
:
如果要向每个请求添加一个头(或一组头),请使用发送前的钩子$。ajaxSetup()
:
编辑(更多信息):需要注意的一点是,使用ajaxSetup
只能定义一组默认标题,在发送之前只能定义一个。如果多次调用ajaxSetup
,则只会发送最后一组标头,并且只会执行发送前的最后一次回调
参考:如果API不支持CORS或JSONP…您必须在服务器或第三方服务上使用代理。并非所有的api都可以使用ajax访问Access Control Allow Origin
头必须设置在另一端…在客户端设置它没有好处我建议您查看openweathermap.org的文档,了解如何调用它们的api
$.ajaxSetup({
headers: { 'x-my-custom-header': 'some value' }
});
// Sends your custom header
$.ajax({ url: 'foo/bar' });
// Overwrites the default header with a new header
$.ajax({ url: 'foo/bar', headers: { 'x-some-other-header': 'some value' } });
$.ajaxSetup({
beforeSend: function(xhr) {
xhr.setRequestHeader('x-my-custom-header', 'some value');
}
});
// Sends your custom header
$.ajax({ url: 'foo/bar' });
// Sends both custom headers
$.ajax({ url: 'foo/bar', headers: { 'x-some-other-header': 'some value' } });