我正在尝试使用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中:
SyntaxError:missing;在陈述之前
指向真正返回我的数据的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();
}
});
});
此网址发出身份验证请求,但是当我输入登录数据时,会显示顶部的错误。
如果我从扩展客户端发出此请求,例如chrome Advanced REST Client,它可以工作,但在我的localhost Laravel应用程序中没有。
请求返回200 ok
,但Jquery请求不会转到success函数。当我搜索时,我甚至尝试了一些解决方案:
format=json
但不行。 我做错了什么?我相信这是一个简单的错误,但我真的不明白。感谢。
答案 0 :(得分:0)
与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();
}
});