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

Redmine API request with Jquery, using JSONP, throws mime type error

我正在尝试使用 Redmine API, which says it has support for jsonp.

使用 Jquery 发送请求

所以,我尝试了不同的方法来用 Jquery 发出请求,我已经搜索了 'mime type' 错误并尝试使用答案来解决,但控制台中的抛出错误永远是相同的(Google Chrome):

refused to execute script from 'http://redmine_domain_sample/users/current.json?callback=jQuery21309665620597314108_1508906065651&_=1508906065652' because its MIME type ('application/json') is not executable, and strict MIME type checking is enabled.

在 Firefox 中:

SyntaxError: missing ; before statement

正在申请真正 return 我的数据的 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 高级 REST 客户端,它可以工作,但在我的本地主机 Laravel 应用程序中没有。

请求 return 200 ok,但是 Jquery 请求没有进入成功函数。当我搜索时,我什至尝试了一些解决方案:

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

它在 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();
  }
});

谢谢大家。但我只是通过沟通解决了这个问题。 Redmine API 接受 jsonp,但默认情况下是禁用的。因此,如果域不允许,我无法使用 jsonp 发出请求。没办法。

幸运的是,我遇到了我试图访问的 redmine 域管理员。我要求在 管理配置 docs 中允许)allowed jsonp。他成功了,我解决了我的问题。