2016-03-29 19 views
0

ajaxデータにパラメータ付きストアドプロシージャを送信する必要があります。以下はajaxデータにストアドプロシージャを送信

は、送信後にこのerror

アポストロフィ本当の問題は、任意の解を得る、私の例でありますか?

function sendData(userNameVal, procedureNameVal, jsonCallBackFunc) { 
    var stringVal = "wsInsertData N'EXECUTE carInsert N''160655'',N''data:image/png;base64,AAAAAAAAAAAA'',N''18602''', N'18602'"; 

    $.ajax({ 
        type: "POST", 
        url: 'helloService.asmx/myService', 
        data: "{userName:\"" + userNameVal + "\",procedureName:\"" + stringVal + "\",callback:\"" + jsonCallBackFunc + "\",}", 

        dataType: 'json', 
        contentType: 'application/json; charset=utf-8', 
        success: function (response) { 
         $('#lblError').html(JSON.stringify(response)); 
        }, 
        error: function (error) { 
         console.log(error); 
        } 
       }); 
      } 
+4

生のSQLを渡すことは、大惨事のような悪い考えです。パラメータとともにサーバー側のsp名にマッピングされた識別子を渡し、そこでパラメータ化されたコマンドを構築します。 –

+0

[JSON.stringify](https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify)を使用して、文字列 'data'を再度取得することを検討してください。 –

答えて

0

「コールバック」の前に、一重引用符を追加すると終了しません。

+0

が再び機能しません! – paris0000

+0

とにかく修正が必要でした:-)。それはjsonCallBackFuncの値と関係があるかもしれませんが、これにもっと多くの努力を費やす前に、私はAlex K.のアドバイスをとることをお勧めします:sqlをサーバに渡すことは非常に悪い考えです。あなたがあなたの - より重要な - セキュリティ問題を解決したら、この問題に陥ります。 – fikkatra

1

セキュリティ! JSONレスポンスをサーバーに編集して独自のSQLを追加するだけで、SQLサーバーが望むことをすることができます。必要なパラメータを渡し、クライアントからの狂った可能性のある入力をサニタイズした後にサーバーがStored Procを構築するようにします。

関連する問題