特定のボタンをクリックした後に Ajax 呼び出しを開始するために、jQuery を使用しようとしています。発生する可能性のある構文と問題の例をいくつか読みましたが、私の原因に対する有効な解決策を見つけることができませんでした。これがコードです。
コントローラ メソッド: (HomeController.cs)
[HttpPost]
public JsonResult ChangeCompany(string companyCode)
{
return Json(new { result = companyCode }, JsonRequestBehavior.AllowGet);
}
jQuery コード:
function changeCompany(company) {
$.ajax({
url: '@Url.Action("ChangeCompany", "Home")',
type: 'POST',
data: JSON.stringify({ companyCode: company }),
success: function (data) {
alert("Company: " + data);
},
error: function (req, status, error) {
alert("R: " + req + " S: " + status + " E: " + error);
}
});
}
最後に、この関数を次のように呼び出しています。
$('.companyButton').click(function () {
compCode = $(this).text();
debug("Click event --> " + $(this).text());
changeCompany(compCode);
});
デバッグ メッセージは正しく表示されますが、Ajax 呼び出しは次のアラートで常に失敗します。R: [object Object] S: error E: Not Found
私はそれをどうするか完全にはわかりません。
このトピックに関するいくつかの質問があることは知っていますが、どれも私の問題を解決していないようで、これらのコード ブロックの何が問題なのか正直わかりません。任意の洞察をいただければ幸いです。
編集: 注目に値する場合、これはモバイル デバイス用です。jQuery Mobile とともに、Windows 8 Phone Emulator (Internet Explorer) でのテスト。それがAjaxにまったく影響するかどうかはわかりません
編集 2:生のネットワーク呼び出しを見た後'Url.Action("ChangeCompany", "Home")'
、適切な URL に変換されていないようで、代わりに生の URL テキストであるかのように直接呼び出されています。これは古い jQuery によるものですか、それとも他の要因によるものですか?