在我的项目中,我使用MVC api。 我试图通过AJAX在一个完整的URL中获取这个(和其他)数据: 网址:http://urlexample.com
这给出了一个错误: 跨越原始请求被阻止
我做错了什么?谁可以帮助我? 关于这个问题还有很多东西要读,但到目前为止还没有解决这个问题。这是我的代码:
<script type="text/javascript">
function loadstudentid() {
$.ajax({
// url: '/api/AZstudent', // > work fine
// url: 'http://<domain>.<subdomain>/api/azstudent', > // Gives te issue
cache: false,
dataType: 'json',
success: function (data) {
$(data).each(function (i, item) {
$(item).each(function (i, stud) {
console.log(stud.id_student);
});
});
},
error: function (request, status, error) {
console.log('error', error);
}
});
}
Wy是否有效?
<script type="text/javascript">
function doewat() {
var flickerAPI = "http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?";
$.getJSON( flickerAPI, {
tags: "mount rainier",
tagmode: "any",
format: "json"
})
.done(function( data ) {
$.each( data.items, function( i, item ) {
$( "<img>" ).attr( "src", item.media.m ).appendTo( "#images" );
if ( i === 3 ) {
return false;
}
});
});
}
//)();
http://api.jquery.com/jquery.getjson/
尝试了以下
jQuery.support.cors = false;
和
crossDomain: true,
和
var url = 'http://myurl.com/api'
答案 0 :(得分:1)
这是有效的原因:
url: '/api/AZstudent',
是因为它是一个相对路径,这意味着它将解析为其当前域(可能是localhost?)
另一个不是因为ajax请求源自域example.com到&gt; somethingelse.com
这不起作用,因为这将允许人们执行恶意操作。
以下是对此的更深入的解读: https://developer.mozilla.org/en-US/docs/Web/Security/Same-origin_policy
答案 1 :(得分:0)