Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/21.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用AngularJS的跨域HTML解析_Javascript_Angularjs_Http_Angular_Angular Ui Bootstrap - Fatal编程技术网

Javascript 使用AngularJS的跨域HTML解析

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',

我们正在进行一个java项目,其中后端是java+spring,前端是angular 2+HTML

我想进行跨域html解析,但我们没有权限访问服务器端的外部链接,因为我们对外部域存在一些安全问题,因此我们必须使用jquery获取客户端链接的DOM内容

我试过这些:

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:意外标记 获取页面内容并传递到服务器端进行解析的最佳解决方案是什么?

解决方案1) 控制台中获取错误-未捕获语法错误:xyz.aspx页面上出现意外标记<

这意味着服务器回调不是有效的JavaScript应用程序。请确保服务器返回有效的JavaScript应用程序。这样,这个错误就会消失
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');
});