我在JavaScript中有以下代码 - #test是html中的一个简单的h3标签。我测试了这可以通过" test1"来改变。我的问题是为什么ajax只适用于某些URL。在下面的代码片段中,永远不会取得成功:换句话说,#test不会成为" test2"。但是,如果我用
替换URL' http://quotesondesign.com/wp-json/posts?filter[orderby]=rand&filter[posts_per_page]=1'
成功达成。两者都链接到JSON,它们看起来和我一样......那么为什么只有上面显示的URL才能成功?
类似的问题 - jQuery $.ajax not working for a certain URL - 这是由于相同的原始政策。这也适用于我的情况吗?有没有办法解决这个问题?
$(document).ready(function(){
$("#button").on("click", function(e) {
e.preventDefault();
$("#test").html("test1");
$.ajax({
url: 'https://en.wikipedia.org/w/api.php?action=query&list=search&srsearch=Albert%20Einstein&format=json',
success: function(data) {
$('#test').html("test2");
},
cache: false
});
});
})
答案 0 :(得分:0)
找到了一种方法,可以使用jsonp作为数据类型,在https://www.mediawiki.org/wiki/Manual:Ajax#Limitations
中找到我的更新代码:
$(document).ready(function(){
$("#button").on("click", function(e) {
e.preventDefault();
$("#test").html($("input").val());
$.ajax({
url: "https://en.wikipedia.org/w/api.php?action=query&titles=Boston%20Tea%20Party&prop=revisions&rvprop=content&format=json",
data: {
format: 'json'
},
dataType: 'jsonp',
success: function(data) {
$('#test').html(Object.keys(data.query.pages)[0]);
},
cache: false
});
});
})