使用JSONP的Jquery的Redmine API请求会抛出mime类型错误

时间:2017-10-25 05:33:49

标签: jquery jsonp mime-types redmine redmine-api

我正在尝试使用Redmine API使用Jquery发送请求,support for jsonp表示它有enter image description here

所以,我尝试了使用Jquery发出请求的不同方法,我已经搜索了“mime类型”错误并尝试使用答案解决但是控制台中的throw错误是相同的(Google Chrome):

  

拒绝执行脚本   'http://redmine_domain_sample/users/current.json?callback=jQuery21309665620597314108_1508906065651&_=1508906065652'   因为它的MIME类型('application / json')不可执行,而且   启用了严格的MIME类型检查。

在Firefox中:

  

SyntaxError:missing;在陈述之前

指向真正返回我的数据的json。当我点击我可以看到数据:

here

这是我的代码:

$("#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

但不行。 我做错了什么?我相信这是一个简单的错误,但我真的不明白。感谢。

1 个答案:

答案 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();
  }
});