javascript - Ajax 调用不接受带有撇号的名称作为参数

标签 javascript jquery

$(".loadingPnl").removeClass('hdn');

var siteurlA = window.location.protocol + "//" + window.location.host + _spPageContextInfo.siteServerRelativeUrl;
var callUrl = siteurlA + "/_layouts/15/SynchronyFinancial.Intranet/CreateMySite.aspx/SaveAvailableFavoriteItem";

var linkName = $('.txtLinkName').val();
linkName = linkName.replace("'","\'");

$.ajax({
    type: "POST",
    url: callUrl,
    data: "{'linkName': '" + linkName + "', 'webSiteUrl':'" +  $('.txtWebAddress').val() + "','iconId':'" + $(".ddlIcons").val() + "'}",
    contentType: "application/json; charset=utf-8",
    processData: false,
    dataType: "json",
    success: function (response) {
        return true;
    },
    error: function (response) {
        return true;
    }
});

return true;

}

最佳答案

问题是您自己构建 JSON 作为请求参数。此外,您正在构建 invalid JSON (JSON 属性名称​​始终带有双引号 ("))。

相反,传递一个对象并让 jQuery 负责如何发送它 - 如果您传递对象而不是字符串,服务器可以弄清楚。如果您真的想自己做,您也可以将对象传递给 JSON.stringify

var payload = {
    linkName: linkName,
    webSiteUrl: $('.txtWebAddress').val(),
    iconId: $(".ddlIcons").val()
};



 $.ajax({
    type: "POST",
    url: callUrl,
    data: JSON.stringify(payload), // or just payload
    contentType: "application/json; charset=utf-8",
    processData: false, // if you just pass payload, remove this
    dataType: "json" 
    // you had two `return`s here, but they wouldn't work, make sure
    // you understand why
    // http://stackoverflow.com/questions/14220321/how-to-return-the-response-from-an-asynchronous-call
});

关于javascript - Ajax 调用不接受带有撇号的名称作为参数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29844728/

相关文章:

javascript - 如何动态改变 ion-content 位置?是否可以?

javascript - 使用 moxios 测试 redux 异步方法

javascript - 单击时 Jquery 图像交换

javascript - JQuery ui 拖放并排序。排序时复制掉落的元素

jquery - 使用 HTML5/jQuery 从 iPhone 获取用户号码

javascript - PhpStorm 2019.2 : Material UI components requiring props which are not required

javascript - 在 reducer 中未触发 redux-toolkit 操作

javascript - 根据窗口宽度添加标题类

javascript - 当用户试图离开当前页面时如何显示弹出窗口?

javascript - Mouseenter 不适用于动态内容