我正在制作一个网络应用程序,需要偶尔(也许一个月)下载许多 JSON 文件并将它们存储在 localStorage 中。我使用 Parse.com 作为后端即服务。我将 JSON 托管在 Parse 上。
我的代码是:
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title></title>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script>
<script type="text/javascript" src="http://www.parsecdn.com/js/parse-1.2.18.min.js"></script>
<script type="text/javascript">
Parse.initialize("MY_APP_KEY", "MY_JS_KEY");
</script>
<script>
$.getJSON( "http://myappname.parseapp.com/1111.json", function( data ) {
var items = [];
$.each( data, function( key, val ) {
items.push( "<li id='" + key + "'>" + val + "</li>" );
});
$( "<ul/>", {
"class": "my-new-list",
html: items.join( "" )
}).appendTo( "body" );
});
</script>
</head>
<body>
</body>
</html>
我收到以下错误:
跨源请求被阻止:Access-Control-Allow-Origin header 丢失
。
但是当我在浏览器中打开它时,它打开得很好。
为什么不起作用?有什么可行的解决办法吗?
谢谢。
最佳答案
否则,您可以将 callback=?
添加到您使用的网址,如下所示,这将获取 jsonp
类型的数据:
$.getJSON( "http://myappname.parseapp.com/1111.json?callback=?", function( data ) {
var items = [];
$.each( data, function( key, val ) {
items.push( "<li id='" + key + "'>" + val + "</li>" );
});
$( "<ul/>", {
"class": "my-new-list",
html: items.join( "" )
}).appendTo( "body" );
});
<小时/>
更新
$.ajax({
url:'http://myappname.parseapp.com/1111.json',
dataType:'jsonp',
crossDomain:true,
success:function( data ) {
var items = [];
$.each( data, function( key, val ) {
items.push( "<li id='" + key + "'>" + val + "</li>" );
});
$( "<ul/>", {
"class": "my-new-list",
html: items.join( "" )
}).appendTo( "body" );
},
error:function(jqXHR,responseText,status){
console.log(jqXHR);
}
});
这就是在 ajax
中执行此操作的方法。如果您遇到任何问题,请检查控制台
,因为它将记录
关于jquery - 访问控制允许解析应用程序调用中缺少 Origin header ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31533351/