2017-01-06 17 views
-1

JSON配列をAJAX経由でvb.net Web関数に渡そうとしていますが、エラーが発生しています。あなたがAJAX JSON無効な形式

{"readyState":4,"responseText":"{\"Message\":\"Invalid object passed in, \\u0027:\\u0027 or \\u0027}\\u0027 expected. (15): {\\\"retDets\\\":\\\"{\\\"__VIEWSTATE\\\":\\\"/wEPDwULLTE0MDkxNzYwNDNkZIvZ4V6cac737n6rhojsjcpPY/VJaIhxf+LCGOM/JDUz\\\",\\\"PSPID\\\":\\\"cum1rp\\\",\\\"ORDERID\\\":\\\"1508ORD\\\",\\\"AMOUNT\\\":\\\"25000\\\",\\\"CURRENCY\\\":\\\"GBP\\\",\\\"LANGUAGE\\\":\\\"en_UK\\\",\\\"CN\\\":\\\"Nick\\\",\\\"EMAIL\\\":\\\"[email protected]\\\",\\\"SHASIGN\\\":\\\"d22df14635f84283f9ba58ded25aa1716773893d\\\",\\\"TITLE\\\":\\\"WDM Payment Gateway\\\",\\\"BGCOLOR\\\":\\\"#4e84c4\\\",\\\"TXTCOLOR\\\":\\\"#FFFFFF\\\",\\\"TBLBGCOLOR\\\":\\\"#FFFFFF\\\",\\\"TBLTXTCOLOR\\\":\\\"#000000\\\",\\\"BUTTONBGCOLOR\\\":\\\"#00467F\\\",\\\"BUTTONTXTCOLOR\\\":\\\"#FFFFFF\\\",\\\"LOGO\\\":\\\"fill here your logo file name\\\",\\\"__VIEWSTATEGENERATOR\\\":\\\"B6E7D48B\\\"}\\\"}\",\"StackTrace\":\" at System.Web.Script.Serialization.JavaScriptObjectDeserializer.DeserializeDictionary(Int32 depth)\\r\\n at System.Web.Scr

+1

引用符を取り除くあなたはJSONの途中でエラーが持っているようだ - 問題を占めるように思われます。そのエラーの原因をデバッグしようとしましたか? –

答えて

1

:そのを呼び出すすると仮定

var retDets = {}; 


for (var i = 0, len = inputs.length; i < len; i++) { 
    if (inputs[i].type === "hidden") { 
     if (inputs[i].value !== "") { 
      value.push(inputs[i].value) 
      name.push(inputs[i].name) 
      retDets[inputs[i].name] = inputs[i].value; 
     } 

//console.log(JSON.stringify(retDets)) 

args = '{"retDets":"' + JSON.stringify(retDets) + '"}'; 
aj('payment2', returnFunc, args, failedCallBack); 

ウェブ機能は、私は次のエラーを取得しています。この

<WebMethod()> 
Public Function payment2(retDets() As String) As String 
    Dim a As String() = retDets 
    Dim b As String 
    Return b 
End Function 

(単なるテスト目的のために)でありますこれは:

args = '{"retDets":"' + JSON.stringify(retDets) + '"}'; 

出力にはネストされた引用符が付きます。

{"retDets":"{"asdasd":"asdasdas","ASdasdsad":"khkjhkjhjkh"}"}'; 

args = '{"retDets":' + JSON.stringify(retDets) + '}'; 
+0

返信ありがとうございますが、私もこれを試したことを含めるのを忘れてしまい、またエラーが戻ってきました。 "\\ u0027System.String [] \\ u0027。\"、\ "StackTrace \"の型に対してパラメータなしのコンストラクタは定義されていません:{"readyState":4、 "responseText": "{\" Message \ ":\" \ " – Nick

+0

それよりも文字列を期待しているのですか? – epascarello

+0

他のオプションは、引用符をエスケープすることです.... – epascarello

関連する問題