我发现我的ajax DELETE请求没有发送数据参数给控制器,当我通过capybara-webkit执行它们时。但是,当我使用硒运行测试套件时,数据参数确实发送(并且测试通过)。我的代码如下所示:
$(document).on 'click', 'a.delete_contact', ->
if confirm "Are you sure you want to delete this contact?"
id = $('a.delete_contact').data('id')
name = $('a.delete_contact').data('name')
$.ajax '/contacts',
type: 'DELETE'
dataType: 'html'
data: {'id' : id}
success: ->
$("li[data-cid='#{id}']").remove()
removeInitial(_.last(name.split(" "))[0])
show_notice("Contact successfully destroyed.", 'notice')
window.contactSelection.pop()
refreshSelectionView()
return false
任何想法为什么在capybara-webkit中失败?
+0
我不确定这个问题的解决方法,但似乎capybara-webkit没有模仿http动词的能力。 [见这里的讨论。](https://github.com/thoughtbot/capybara-webkit/issues/180) –
+0
@JasonKim我相信讨论是关于允许从Ruby代码到服务器的任意请求。这是“浏览器”(由capybara-webkit模拟)不通过请求主体发送的问题,除非HTTP方法是PUT或POST。我有同样的问题,但我试图使用PATCH方法。 –