AngularJS $ http服务有CORS问题。但它应该适用于JSONP,对吗?

时间:2017-08-30 17:39:54

标签: angularjs cors jsonp angularjs-http

我检查了上述帖子,首先它与AngularJS无关,其次,该帖子的答案是:不,你不能使用JSONP来获取HTML数据。

为什么我的帖子是重复的,而不是在其他帖子中答案说 -  你做不到,但是这里的人说我可以(通过$ sce)? 谁是对的?

基本上我想做这项工作:

当我使用$ http.get:

equals

我得到例外:

  

XMLHttpRequest无法加载   https://weather.gc.ca/city/pages/on-143_metric_e.html。没有   '访问控制允许来源'标题出现在请求的上   资源。起源' http://localhost:8080'因此是不允许的   访问。

清楚 - CORS问题。

但它应该适用于JSONP,对吗?

当我使用$ http.jsonp:

getWeatherForecast() {
    return this.$http.get('https://weather.gc.ca/city/pages/on-143_metric_e.html');
}

我得到例外:

  

angular.js:14642错误:[$ sce:insecurl]   http://errors.angularjs.org/1.6.5/ $ SCE / insecurl?P0 = HTTPS%3A%2F%2Fweather.gc.ca%2Fcity%2Fpages%2Fon-143_metric_e.html       在http://localhost:8080/node_modules/angular/angular.min.js:7:76       at getTrusted(http://localhost:8080/node_modules/angular/angular.min.js:157:67)       at Object.c。(匿名函数)[as getTrustedResourceUrl](http://localhost:8080/node_modules/angular/angular.min.js:158:352)       在q(http://localhost:8080/node_modules/angular/angular.min.js:103:257)       在http://localhost:8080/node_modules/angular/angular.min.js:102:8       在http://localhost:8080/node_modules/angular/angular.min.js:136:167       at m。$ digest(http://localhost:8080/node_modules/angular/angular.min.js:147:70)       at m。$ apply(http://localhost:8080/node_modules/angular/angular.min.js:150:281)       在gapi.client.init.then(http://localhost:8080/app/google.auth.js:26:33)       在h.r2(https://apis.google.com//scs/apps-static//js/k=oz.gapi.en_GB.F7DGotPmXwE.O/m=auth2,client/rt=j/sv=1/d=1/ed=1/am=AQ/rs=AGLTcCNq_HS-9xmY0NiaH7I_fyUJGoSh1Q/cb=gapi.loaded_0:107:107)   "可能未处理的拒绝:{}"

完整服务代码:

不确定如何使用$ sce,原始的AngularJS文档绝对不清楚。将代码更改为此,现在它引发了许多其他异常:

getWeatherForecast() {
    return this.$http.jsonp('https://weather.gc.ca/city/pages/on-143_metric_e.html');
}

现在我收到了所有这些错误(为什么他们不能写出人们可以理解的清晰文档:(

enter image description here

0 个答案:

没有答案