Javascript 使用AngularJS的跨域HTML解析
我们正在进行一个java项目,其中后端是java+spring,前端是angular 2+HTML 我想进行跨域html解析,但我们没有权限访问服务器端的外部链接,因为我们对外部域存在一些安全问题,因此我们必须使用jquery获取客户端链接的DOM内容 我试过这些:Javascript 使用AngularJS的跨域HTML解析,javascript,angularjs,http,angular,angular-ui-bootstrap,Javascript,Angularjs,Http,Angular,Angular Ui Bootstrap,我们正在进行一个java项目,其中后端是java+spring,前端是angular 2+HTML 我想进行跨域html解析,但我们没有权限访问服务器端的外部链接,因为我们对外部域存在一些安全问题,因此我们必须使用jquery获取客户端链接的DOM内容 我试过这些: var url = "http://xyz.aspx"; $http({ method: 'JSONP', url: url, params: { format: 'jsonp',
var url = "http://xyz.aspx";
$http({
method: 'JSONP',
url: url,
params: {
format: 'jsonp',
json_callback: 'JSON_CALLBACK'
}
}).
success(function(response) {
$scope.test = response;
}).
error(function(status) {
//your code when fails
});
我需要解析的外部链接包含许多href
链接。我还需要解析这些链接的内容
已尝试上述代码:
控制台中获取错误-未捕获SyntaxError:意外标记JSONP
需要有效的JavaScript应用程序响应才能正常工作。例如,JSONP回调应该是这样的:
jsonCallback(
{
sites: [
{
siteName: "Test"
}
]
}
);
解决方案2) 如果服务器端没有返回JSON对象,请尝试使用
GET
请求并启用
解决方案3) 如果您仍然无法将COR添加到后端,您可以自己创建一个代理应用程序。例如,这是一个公共CORS代理。添加一个关于如何创建代理服务的示例将非常困难。请自己研究。网络上有很多例子。请参阅。您的URL缺少回调参数,而没有给出
json_callback: 'JSON_CALLBACK'
试试下面的方法
$http({
method: 'jsonp',
url: 'http://xyz.aspx?callback=JSON_CALLBACK',
params: { name: 'xyz' }
}).success(function(data, status , header, config) {
console.log('success');
}).error(function(data, status , header, config) {
console.log('error');
});
我无法更改服务器内容,即http链接,我只需要来自该服务器链接的内容。@Geetanjali已更新,未启用CORS无法使其工作。“JSONP需要有效的JSON正文响应”-它不需要。它需要一个JavaScript应用程序,而不是JSON。@Quentin,是的。但是
$http
方法JSONP
也可以使用JSON对象作为响应负载。@lin-不应该这样做。如果在响应中给它JSON,它通常会在命中第一个:
时抛出错误。JSONP通过生成
来工作。您必须将JS输入其中,而不是JSON。我也试过了,但我也犯了同样的错误。请给我一些反馈,我的答案对你有用吗?
$http({
method: 'jsonp',
url: 'http://xyz.aspx?callback=JSON_CALLBACK',
params: { name: 'xyz' }
}).success(function(data, status , header, config) {
console.log('success');
}).error(function(data, status , header, config) {
console.log('error');
});