javascript - 如果数据参数包含-(连字符)符号如何处理?

标签 javascript jquery ajax xmlhttprequest

我正在尝试使用ajax调用(POST)和参数以及setheaders发送http请求。参数由特殊字符“-”组成。
我面临以下错误:-

 callCount:"1",
 page:"/portalcareer?_s.crb=kyJ6d%252fC9jtNjs4BrI7xhqEHgCfU%253d",
 scriptSessionId:"80A8BD291A8E635A37D57F13E5D1F423898",
 c0-scriptName:"picklistControllerProxy",
 c0-methodName:"getChildPickLists",
 c0-id:"0",
 c0-param0:"string:%7B0%20%3A%20341%7D",
 c0-param1:"string:school",
 batchId:"11"

我遇到错误

c0-scriptName:"picklistControllerProxy",

Error at - charcter

Clicked on that and verified its happening exactly there only

这是我的代码

  $("#typeOfSchool").change(function () {
         jQuery.ajax({
                type: 'POST',
                beforeSend: function (abc)
                {
                   abc.setRequestHeader("X-Ajax-Token","ASfafqXVKiGWRh9fBWaJ4XlYI%2fY%3d");
                   abc.setRequestHeader("Accept", "*/*");
                   abc.setRequestHeader("Accept-Encoding","gzip, deflate");
                   abc.setRequestHeader("Accept-Language","en-US,en;q=0.8");
                   abc.setRequestHeader("Connection","keep-alive");
                   abc.setRequestHeader("Content-Length","292");
                   abc.setRequestHeader("Content-Type","text/plain");
                   abc.setRequestHeader("Host","career4.successfactors.com");
                   abc.setRequestHeader("User-Agent","Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.86 Safari/537.36");
                },
                 data: {
                    callCount:"1",
                    page:"/portalcareer?_s.crb=kyJ6d%252fC9jtNjs4BrI7xhqEHgCfU%253d",
                    scriptSessionId:"80A8BD291A8E635A37D57F13E5D1F423898",
                    c0-scriptName:"picklistControllerProxy",
                    c0-methodName:"getChildPickLists",
                    c0-id:"0",
                    c0-param0:"string:%7B0%20%3A%20341%7D",
                    c0-param1:"string:school",
                    batchId:"11"
                },
                 url: 'https://careermela.xyz.com/xi/ajax/remoting/call/plaincall/picklistControllerProxy.getChildPickLists.dwr',
                 success: function(data){
                    alert("process success");
                    alert(data);
                 console.log('succes: '+data);
                  }
               });
    });

最佳答案

为您的数据添加引号

data: {
    "callCount":"1",
    "page":"/portalcareer?_s.crb=kyJ6d%252fC9jtNjs4BrI7xhqEHgCfU%253d",
    "scriptSessionId":"80A8BD291A8E635A37D57F13E5D1F423898",
    "c0-scriptName":"picklistControllerProxy",
    "c0-methodName":"getChildPickLists",
    "c0-id":"0",
    "c0-param0":"string:%7B0%20%3A%20341%7D",
    "c0-param1":"string:school",
    "batchId":"11"
}

如果这不起作用,请将内容类型添加到您的 ajax 调用中并字符串化您的数据。

contentType: 'application/json; charset=utf-8'

var data = {
                "callCount":"1",
                "page":"/portalcareer?_s.crb=kyJ6d%252fC9jtNjs4BrI7xhqEHgCfU%253d",
                "scriptSessionId":"80A8BD291A8E635A37D57F13E5D1F423898",
                "c0-scriptName":"picklistControllerProxy",
                "c0-methodName":"getChildPickLists",
                "c0-id":"0",
                "c0-param0":"string:%7B0%20%3A%20341%7D",
                "c0-param1":"string:school",
                "batchId":"11"
            }

jQuery.ajax({
          ...
          data: JSON.stringify(data),
          ...
});

关于javascript - 如果数据参数包含-(连字符)符号如何处理?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33757763/

相关文章:

Jquery slider CSS 问题

javascript - 无法通过 Ajax 将 Javascript 数组传递给 PHP

javascript - 如何将多个变量从 AJAX 传递到 PHP?

javascript ajax变量问题

javascript - 如何知道异步函数何时完成

javascript - jquery,如何检查特定 ID 是否是其他 ID 的子代?

javascript - 箭头函数参数

javascript - Angular 4 - "wait for operation"的正确方法是什么?

javascript - 如何在 apache 中托管预压缩的静态内容?

jquery - append() 发生在 hide() 之前