文章では説明しづらいので以下画像で説明していきます。
まず起こってる現象としましては
js
1 $('#user-search-result-body').on('click', '.cell-link', function() { 2 const user_id = $(this).data('user_id') 3 const location = $(this).data('location') 4 var str = `/users/locations/${location}/coming_locations/${user_id}/` 5 console.log(str) 6 $.ajax({ 7 type: 'PATCH', 8 url: `/users/locations/${location}/coming_locations/${user_id}`, 9 cache: false 10 }) 11 })
上記のajaxで渡しているURLのuser_idに当たる部分がconsole.logではとれているのにもかかわらず
↓ではなぜか消えてしまってます。(urlにstrを直接渡しても結果は同じです)
では、user_id以外ならどうか、例えばlocationも同じくdata属性から撮ってきてるので、user_idの部分をlocationにかえてみます。
js
1 $('#user-search-result-body').on('click', '.cell-link', function() { 2 const user_id = $(this).data('user_id') 3 const location = $(this).data('location') 4 var str = `/users/locations/${location}/coming_locations/${user_id}/` 5 console.log(str) 6 $.ajax({ 7 type: 'PATCH', 8 url: `/users/locations/${location}/coming_locations/${location}`, 9 cache: false 10 }) 11 }
この場合はリクエストが正常に送られます(意図したURLでリクエストが送られてます)
じゃあuser_idだけだめなのか?
今度はlocationとuser_idを入れ替えてみます。
js
1 $('#user-search-result-body').on('click', '.cell-link', function() { 2 const user_id = $(this).data('user_id') 3 const location = $(this).data('location') 4 var str = `/users/locations/${location}/coming_locations/${user_id}/` 5 console.log(str) 6 $.ajax({ 7 type: 'PATCH', 8 url: `/users/locations/${user_id}/coming_locations/${location}`, 9 cache: false 10 }) 11 }
とれてる..........なんで!!!
ではurlを微妙に書き換えたらどうか
本来リクエストしたいURLのuser_idの前のcoming_locationsからsをとってみます。
js
1 $('#user-search-result-body').on('click', '.cell-link', function() { 2 const user_id = $(this).data('user_id') 3 const location = $(this).data('location') 4 var str = `/users/locations/${location}/coming_locations/${user_id}/` 5 console.log(str) 6 $.ajax({ 7 type: 'PATCH', 8 url: `/users/locations/${location}/coming_location/${user_id}`, 9 cache: false 10 }) 11 }
と....とれてる。。。。。。
とこんな感じで意味不明な現象が発生してしまっていて、もしどなたかわかる方いらっしゃいましたら力を貸していただければと....
回答3件
あなたの回答
tips
プレビュー