我正在尝试创建一个chrome扩展,它将从这个URL查找输入词汇表的含义:http://hanviet.org/ajax.php?query=%E6%97%A5&methode=normal
我做了一个ajax调用使用jquery,但得到了一个错误,因为跨域问题:"没有'Access-Control-Allow-Origin'头是在请求的资源。因此,原点'null'不允许访问"。好的,我认为不是直接向URL发出请求,我需要通过代理页面调用它,如下所示:
$.get("/myproxy.php?query=日&methode=normal", function( data ) {
alert( "Load was performed." );
});
做谷歌搜索后,有另一个chrome扩展名为DHC使http请求:https://www.sprintapi.com/dhcs.html。而且效果非常好!
我想知道DHC工具是否也通过它的代理发送请求,或者有另一种方法来发出我不知道的直接请求。
谢谢!
$.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);
}
如果您在该站点上使用chrome的开发人员工具,在网络选项卡上,您将看到按下send
按钮后,它会从https://www.sprintapi.com/api/proxy
加载内容,所以是的,它应该使用代理。
更重要的是,正如你所说的Access-Control-Allow-Origin不会让他们以另一种方式做到这一点。