Ajax上的意外令牌非法获取

时间:2016-03-29 14:16:26

标签: javascript jquery json ajax

我通过ajax发送动态生成的sql 我得到了parsererror - Error:reportDataFunction was not called - ERROR123- reportDataFunction

我在Google Chrome控制台中收到此错误Uncaught SyntaxError: Unexpected token ILLEGAL

这就是错误:

http://MYWEBSITE/webService/myService.asmx/myServiceDB?callback=reportDataFunction&userName=dskrbic&procedureName=declare+%40result+xml+SET+%40result+%3D(SELECT+unitCode+AS+unitCode+FROM+unit+WHERE+universityCode+%3D+144+FOR+XML+path%2Croot%2CELEMENTS+XSINIL)DECLARE+%40outputValue+nvarchar(MAX)+EXECUTE+convertJSONPMulti+%40result%2C+%40outputValue+output+SET+%40outputValue+%3D%27selectView+%3A%27%2B%40outputValue+SELECT+%27%7B%27%2B+%40outputValue+%2B%27%7D%27&_=1459259972547

这是我打电话的程序:

 var procedureVal = "declare @result xml SET @result =(SELECT unitCode AS unitCode FROM unit WHERE universityCode = 144 FOR XML path,root,ELEMENTS XSINIL)DECLARE @outputValue nvarchar(MAX) EXECUTE convertJSONPMulti @result, @outputValue output SET @outputValue ='selectView :'+@outputValue SELECT '{'+ @outputValue +'}'"

这是我的ajax

 $.ajax({
    crossDomain: true,
    type: "GET",
    contentType: "application/json; charset=utf-8",
    async: false,
    url:"URL",
    data: { userName: "dskrbic", procedureName: procedureVal },
    dataType: "jsonp",
    jsonpCallback: "reportDataFunction",
    error: function (xhr, textStatus, errorThrown) {
        alert(textStatus + ' - ' + errorThrown + ' - ERROR123 - ' + "reportDataFunction")
    }
});

如果我直接在sql的查询中粘贴我的procedureVal,或者如果我直接通过webService调用它,如果我转到我的webService的链接我得到结果但是如果我通过ajax调用它我得到错误。这就是我得到的例子:

({selectView :[    {\"unitCode\":\"1\"},    {\"unitCode\":\"2\"},    {\"unitCode\":\"3\"},{\"unitCode\":\"4\"}]});

知道问题出在哪里?谢谢你的帮助

编辑:

我的GET标题 My headers of GET

这就是我的回答:

reportDataFunction({selectView:[{\" unitCode \":\" 1 \"},{\" unitCode \":\& #34; 2 \"},{\" unitCode \":\" 3 \"} .....

从第一个"响应是红色的,我认为周围有错误吗?

1 个答案:

答案 0 :(得分:0)

由于某种原因,我无法发送这部分sqlQuery

SET @outputValue ='selectView :'+@outputValue SELECT '{'+ @outputValue +'}'"

所以我将它分成3个部分,并制作了具有该部分的程序,并且我将生成的值发送到该程序,我将它们放在一起并作为一个执行