我正在尝试创建一个Chrome扩展程序,它会从此网址中查找输入词汇表的含义:http://hanviet.org/ajax.php?query=%E6%97%A5&methode=normal
我使用jquery进行了ajax调用但由于跨域问题而出现错误:“No'Access-Control-Allow-Origin'标头出现在请求的资源上。来源'null'是因此不允许访问“。好吧,我是访客,而不是直接向URL发出请求,我需要通过代理页面调用它,如下所示:
$.get("/myproxy.php?query=日&methode=normal", function( data ) {
alert( "Load was performed." );
});
在进行谷歌搜索之后,还有另一个名为DHC的Chrome扩展程序来发出http请求:https://www.sprintapi.com/dhcs.html。它完美无缺!
我想知道DHC工具是否也通过其代理发送请求,或者还有另一种方式来发出我不知道的直接请求。
谢谢!
答案 0 :(得分:3)
$.ajax({
type: "GET",
url: 'URL',
jsonp: 'callback',
dataType: 'jsonp',
data: {},
success: loginSuccess,
crossDomain: true,
error: ajaxFailed,
contentType: 'application/json',
async: false
});
function ajaxFailed(result) {
alert("Failed: " + result.status + ' ' + result.statusText);
}
function loginSuccess(data) {
alert('Result: ' + data.d);
}
答案 1 :(得分:1)
如果您在该网站上使用chrome的开发者工具,则在“网络”标签上,您会看到按下send
按钮后,它会加载https://www.sprintapi.com/api/proxy
中的内容,是的,它应该使用的是代理。
更重要的是,正如你所说的那样, Access-Control-Allow-Origin 不会让他们以我认为的另一种方式做到这一点。