我尝试过:
$("#wiki").on('click', function(e) {
var q = $(this).data('subject');
$.getJSON("https://it.wikipedia.org/w/api.php?gsrnamespace=0&gsrsearch=test&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max?callback=?", {
srsearch: q,
action: "query",
list: "search",
prop: "text",
section: 0,
format: "json"
}, function(data) {
headers: {
"Accept" : "application/json; charset=utf-8",
"Content-Type": "application/javascript; charset=utf-8",
"Access-Control-Allow-Origin" : "*"
},
$("#results").empty();
$("#results").append("<p>Results for <b>" + q + "</b></p>");
$.each(data.query.search, function(i, item) {
$("#results").append("<div><a href='http://it.wikipedia.org/wiki/" + encodeURIComponent(item.title) + "'>" + item.title + "</a><br>" + item.snippet + "<br><br></div>");
});
},
);
});
还有
$("#wiki").on('click', function(e) {
var q = $(this).data('subject');
$.getJSON("https://it.wikipedia.org/w/api.php?gsrnamespace=0&gsrsearch=test&gsrlimit=10&prop=pageimages|extracts&pilimit=max&exintro&explaintext&exsentences=1&exlimit=max?callback=?", {
srsearch: q,
action: "query",
list: "search",
prop: "text",
section: 0,
format: "json"
},
headers: {
"Accept" : "application/json; charset=utf-8",
"Content-Type": "application/javascript; charset=utf-8",
"Access-Control-Allow-Origin" : "*"
},
function(data) {
$("#results").empty();
$("#results").append("<p>Results for <b>" + q + "</b></p>");
$.each(data.query.search, function(i, item) {
$("#results").append("<div><a href='http://it.wikipedia.org/wiki/" + encodeURIComponent(item.title) + "'>" + item.title + "</a><br>" + item.snippet + "<br><br></div>");
});
},
);
});
最佳答案
没有构造可以在 $.getJSON
调用中添加 header 。您需要使用完整 $.ajax()
请求的 beforeSend
属性,或使用 $.ajaxSetup()
来应用相同的所有 AJAX 调用的 beforeSend
属性,无论使用什么 jQuery 方法来创建它们。
另请注意,Access-Control-Allow-Origin
header 应放置在响应中,而不是请求中。这对您发送的内容没有影响。
如果您试图避免某些浏览器中显示的 CORS 警告(该警告建议使用 Access-Control-Allow-Origin
header ),那么您需要将其添加到您的服务器中而是用边代码。假设您无权访问服务器代码(在本例中您调用的是 Wikipedia)并且收到 CORS 错误,那么您无法通过 JS 代码调用该域。
关于jquery - 在 ajax 调用中应在何处插入 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40487644/