这是一个按钮:
<input type="button" value="add to cart" id="addToCart" />
和绑定事件:
$("#addToCart").bind('click',function(){ $.ajax({ url: '/cartManager/add', data:{ pictureId: currentImageId, printSize: $("#size option:selected").val(), paperType: $("#paperType option:selected").val(), quantity: 1 }, success: function(){ $("#modal").html("<h1>ОК</h1><p>Closing in a sec</p>").delay(1000); $("#modal").overlay().close(); } }); return false; });
一切正常,都发现一件麻烦事,我在Chrome开发者控制台中看到两个请求:
> Request > URL:http://127.0.0.1:8000/cartManager/add?pictureId=4&printSize=2&paperType=1&quantity=1 > Request Method:GET > Status Code:301 MOVED PERMANENTLY
> Request > URL:http://127.0.0.1:8000/cartManager/add/?pictureId=4&printSize=2&paperType=1&quantity=1 > Request Method:GET > Status Code:201 CREATED
两者的请求标头几乎相同,只是请求标头不同:
第一个是 cartManager / add?pictureId = 等,第二个是 cartManager / add /?pictureId- / add之后的’/’
我的JavaScript有问题吗?
暂时没有错,但是您应该给/cartManager/add自己加上斜杠。
/cartManager/add
发生的情况是,Web服务器正在301使用新的URL向AJAX客户端发送重定向,因此它将向正确的URL(即,带有斜杠)发出新请求。
301