我正在从rails应用程序进行更改的AJAX请求。该函数是一个非常简单的PUT请求:
function quantityChange(id, val) {
$.ajax({
url: 'cart_items/' + id,
method: "PUT",
data: {quantity: val},
success: function() {}
})
}
我的问题是请求调用的网址是http://localhost:3004/
而不是http://localhost:3004/cart_items/:id
。
我正在使用jQuery 1.9.1并测试了JSBin中的代码片段。一切都按预期工作,但在Rails应用程序中它尝试调用根主机名。如果我将网址更改为cart_items
+ id
而没有正斜杠,则连接和网址几乎正确http:localhost:3004/cart_items:id
减去所需的正斜杠。
我不明白为什么在使用此url提供ajax时应用程序默认为根主机名。
答案 0 :(得分:-1)
问题是我需要设置我的CSRF令牌。由于我没有,因此请求被重定向到根主机名。
function quantityChange(id, val) {
debugger;
$.ajax({
url: 'cart_items/' + id,
type: "PUT",
data: {quantity: val},
beforeSend: function(xhr){xhr.setRequestHeader('X-CSRF-Token', 'token');},
success: function() {}
})
}