使用 Jquery 的 Redmine API 请求,使用 JSONP,引发 mime 类型错误
Posted
技术标签:
【中文标题】使用 Jquery 的 Redmine API 请求,使用 JSONP,引发 mime 类型错误【英文标题】:Redmine API request with Jquery, using JSONP, throws mime type error 【发布时间】:2018-04-06 02:02:23 【问题描述】:我正在尝试使用 Redmine API 使用 Jquery 发送请求,它表示它有 support for jsonp。
所以,我尝试了不同的方法来使用 Jquery 发出请求,并且我已经搜索了“mime 类型”错误并尝试使用答案来解决,但是控制台中的 throw 错误始终相同(Google Chrome):
拒绝执行脚本
'http://redmine_domain_sample/users/current.json?callback=jQuery21309665620597314108_1508906065651&_=1508906065652'
因为它的 MIME 类型('application/json')是不可执行的,并且 已启用严格的 MIME 类型检查。
在 Firefox 中:
语法错误:缺失;声明之前
apponiting 到真正返回我的数据的 json。当我点击时,我可以看到数据:
这是我的代码:
$("#redmine").click(function()
$.ajax(
type:"get",
url:"http://redmine_domain_sample/users/current.json",
dataType: "jsonp",
contentType: "application/javascript",
success: function(response)
alert(response.firstname);
exibeProjetosRedmine();
);
);
这个 url 发出一个身份验证请求,它有效,所以当我输入登录数据时,会出现顶部的错误。
如果我从扩展客户端发出这个请求,例如,chrome Advanced REST Client,它可以工作,但在我的本地 Laravel 应用程序中没有。
请求返回200 ok
,但Jquery 请求没有转到成功函数。我什至在搜索时尝试了一些解决方案:
format=json
但不工作。 我做错了什么?我相信这是一个简单的错误,但我真的不明白。谢谢。
【问题讨论】:
这听起来像是服务器问题(apache、ngnix),而不是 Redmine 问题...看看这里:***.com/questions/24528211/… 如果您尝试使用像我这样的外部 API,这将不起作用 服务器应该返回application/javascript
作为内容类型。 Link
【参考方案1】:
谢谢大家。但我只是通过沟通解决了这个问题。 Redmine API 接受 jsonp,但默认情况下是禁用的。所以,如果域不允许,我不能用 jsonp 提出请求。没办法。
很高兴,我遇到了我尝试访问的 redmine 域管理员。我要求允许在 管理配置 (docs 这么说)allowed jsonp
。他成功了,我解决了我的问题。
【讨论】:
【参考方案2】:它在 Chrome REST 客户端上运行良好的事实已经表明 JavaScript 代码存在问题,而不是 Redmine API 存在问题。
在 Firefox 控制台中收到错误时,您是否使用调试器检查它指向哪一行代码?也许错误出现在该文件中的其他一些 JS 代码中......
GET 请求通常对我来说甚至可以很好地工作,而无需放置 dataType 和 contentType。使用错误功能,您可以进一步调试出现的问题。
尝试这样的事情怎么样('.json' 扩展名已经告诉 Redmine 你想要返回什么格式):
$.ajax(
url: "http://redmine_domain_sample/users/current.json",
type: "GET",
error: function(jqXHR, textStatus, errorThrown)
if (jqXHR.status == 200)
alert(textStatus);
alert(errorThrown);
else
alert(textStatus);
alert(errorThrown);
,
success: function(response, textStatus, jqXHR)
alert(response.firstname);
exibeProjetosRedmine();
);
【讨论】:
以上是关于使用 Jquery 的 Redmine API 请求,使用 JSONP,引发 mime 类型错误的主要内容,如果未能解决你的问题,请参考以下文章
text APIアクセスキーを用いて,Ruby / RailsからRedmineのREST APIにアクセスする#memo #ruby#web-api #redmine