2016-03-29 15 views
0

Ich muss gespeicherte Prozedur mit Parameter in AJAX-Daten senden.Senden Sie gespeicherte Prozedur in AJAX-Daten

Unten ist mein Beispiel nach Sende erhalten diese error

Apostrophe echtes Problem, eine Lösung?

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

Das Übergeben von Raw SQL scheint eine katastrophale schlechte Idee zu sein. Übergeben Sie zusammen mit den Parametern eine Kennung, die dem SP-Namen auf der Serverseite zugeordnet ist, und konstruieren Sie dort einen parametrisierten Befehl. –

+0

Verwenden Sie [JSON.stringify] (https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/JSON/stringify), um die 'data' als Zeichenfolge –

Antwort

0

Vor 'Rückruf' fügen Sie ein einfaches Zitat 'hinzu, das nicht beendet wird.

+0

wieder nicht zu erhalten! – paris0000

+0

Es brauchte sowieso eine Lösung :-). Es könnte etwas mit dem Wert von jsonCallBackFunc zu tun haben, aber bevor ich viel mehr Mühe darauf verwende, schlage ich vor, den Rat von Alex K. zu nehmen: Es ist eine sehr schlechte Idee, sql an den Server zu übergeben, so dass Sie nicht laufen können in dieses Problem, sobald Sie Ihr - viel wichtigeres - Sicherheitsproblem gelöst haben. – fikkatra

1

Sicherheit! Alles was es braucht, ist ein Benutzer, der die JSON-Antwort auf den Server bearbeitet und ihr eigenes SQL hinzufügt, und sie können Ihren SQL-Server dazu bringen, alles zu tun, was sie wollen. Übergeben Sie alle Parameter, die Sie benötigen, und lassen Sie den Server den Stored Proc erstellen, nachdem Sie mögliche verrückte Eingaben vom Client bereinigt haben.