2017-06-02 95 views
-1

我正在从rails应用程序发出AJAX请求onchange。该功能是一个非常简单的PUT请求:Ajax Url被覆盖

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的URL。

我使用jQuery 1.9.1并测试了JSBin中的代码片段。一切正常,但在Rails应用程序中,它尝试调用根主机名。如果我将网址更改为cart_items + id而没有正斜杠,则连接和网址几乎可以正确输出http:localhost:3004/cart_items:id减去所需的正斜杠。

我不明白为什么应用程序在为此url提供ajax时默认为根主机名。

Error in console

+0

听起来象是要在服务器端 –

+1

尝试更改URL以' '/ cart_items /' + id' – Pavan

+0

已尝试。同样的问题 – wwoodal1

回答

-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() {} 
    }) 
}