我正在使用第三方API,我需要在www.whatever.com/index.json上公开获得json响应,index.json是我需要抓取的。在JSbin中,我已经完全在功能上尝试以基本方式破解它,以便在将其构建到应用程序之前检查它是如何运行的。它工作得很好,但是我在主应用程序中收到了正确的响应,我们用它发送了一个CSRF令牌,这导致204没有内容,因为它是我们的CSRF令牌,他们没有使用一个用于简单的GET请求。发送
时,是否有一种简单的方法可以将其从传输中删除Ember.$.get(www.whatever.com/index.json)
或者我需要在这里看到它吗?
答案 0 :(得分:0)
CSRF令牌不会自动注入您的ajax调用。您不得不劫持ajax请求以注入它,您可以轻松修改该劫持并排除跨站点调用。
这是我的csrf劫持的一个例子,它只针对我们的域
// hack to inject the csrf token
jQuery(document).ajaxSend(function(event, xhr, settings) {
if (!(/^http:.*/.test(settings.url) || /^https:.*/.test(settings.url))) {
var token = $('input[name="csrfmiddlewaretoken"]').val();
xhr.setRequestHeader("X-CSRFToken", token);
}
});