来自 angular 应用程序的 $http.jsonp 调用返回错误 [英] $http.jsonp call from angular app returns errors

查看:50
本文介绍了来自 angular 应用程序的 $http.jsonp 调用返回错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

下面是我创建的一个角度服务,用于通过 jsonp 从 Indeed 求职 api 返回搜索结果

Below is a angular service I created to return search results from Indeed job search api via jsonp

(function() {
"use strict";

angular
    .module("career.resources")
    .factory("JobSearchService", ["$http", jobsearchService]);

    function jobsearchService($http) {
         return{
              getSearchResults: getSearchResults
         };

         function getSearchResults(publisherKey,keywords,location,jobType,limit) {
             return $http.jsonp("http://api.indeed.com/ads/apisearch?", {params: {
                "publisher": publisherKey,
                "v": "2",
                "format": "json",
                "callback": "JSON_CALLBACK",
                "q": keywords,
                "l": location,
                "sort": "",
                "radius": "",
                "st": "",
                "jt": jobType,
                "start": "0",
                "limit": limit,
                "fromage": "",
                "highlight": "1",
                "filter": "1",
                "userip": "1.2.3.4"
            }});
         }
     }
}());

当这个执行时,它抛出这个错误:

When this executes, it throws this error:

拒绝从 (url) 执行脚本,因为其 MIME 类型 ('application/json') 不可执行,并且启用了严格的 MIME 类型检查

这个 jsonp 请求应该返回 application/javascript 吧?我很困惑.

This jsonp request should return application/javascript right? I'm confused.

更新

这个仅供参考,我正在绞尽脑汁.任何帮助将不胜感激...

I'm racking my brain with this FYI. Any help would be greatly appreciated...

推荐答案

在响应中外部设置 content-type:application/javascript 标头.

Externally set content-type:application/javascript header in the response.

严格的 MIME 类型检查只会在 chrome 中产生问题.. 但是,在 Firefox 中工作正常.

Strict MIME type checking only creates issue in chrome .. however, works fine in firefox.

查看更多参考:

Chrome 拒绝执行由于 MIME 类型错误导致的 AJAX 脚本

您可以轻松地在 Php、Java、Node js 等中设置响应头.

You can easily set response header in Php, Java, Node js etc..

这篇关于来自 angular 应用程序的 $http.jsonp 调用返回错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆