javascript - jquery 无法在 ajax 调用中正确序列化 json

标签 javascript jquery

首先我要说的是,我对 Javascript 不太熟悉,我无法弄清楚这里发生了什么。

我有以下功能:

        self.search = function () {

            var searchTerms = {
                "City":  this.cityName,
                "State": this.stateName,
                "StoreNumber": this.storeNumber,
                };                


                $.ajax("/api/SearchApi", {
                    data: searchTerms,
                    type: "POST", contentType: "application/json",
                    success: function (result) {
                        alert(result);                            
                        }
                    }
                });

当我提交时,发生的情况是,它没有按预期提交一个漂亮的 JSON 对象,而是提交一个格式如下的 JSON 对象:"City=testing&State=AL&StoreNumber=test "

理想情况下,我想使用 GET 方法将对象传递到我的服务器,以便我可以返回结果,但是当我使用 get 方法时,它只是将上述内容附加到 API 调用 url 中,从而产生 URL 请求形成如下:http://localhost:57175/api/SearchApi?City=testing&State=AL&StoreNumber=test

如有任何帮助,我们将不胜感激。

最佳答案

确保将 JSON 数据类型添加到您的 $.ajax({ }); 对象中。这应该可以解决问题!

$.ajax({ 
    // ...

    data     : JSON.stringify( searchTerms ), // Encode it properly like so
    dataType : "json", 

    // ...
});

关于javascript - jquery 无法在 ajax 调用中正确序列化 json,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15208519/

相关文章:

javascript - CoffeeScript 类字段未定义

javascript - 如何使用 javascript 在嵌套对象中的特定位置添加子节点

javascript - 弹出时为对话框添加自定义动画

javascript - 我怎样才能抽象出这个 .each 函数?

javascript - 存在哪些 Express websocket 事件?

javascript - Silverstripe 要求组合文件 CSS 和 JS

jquery - 使用 $routeProvider 时 Angular 应用程序中的 dataTables jQuery 插件

php - 动态换肤

javascript - 在 Aurelia 中聚焦一个元素

javascript - 如何在提交之前延迟输入提交按钮几秒钟