jsonp を使用して ashx ハンドラーを呼び出す方法の明確なウォークスルーを誰かに教えてもらえますか、または私が間違っていることを教えてもらえますか? あるサブドメインに JavaScript 関数があり、別のサブドメインで ashx ハンドラーを呼び出そうとしています。試してみると、ステータス 200 が返されますが、それでもエラー処理に入り、SyntaxError: Invalid character の throwError が報告されます。jquery と jsonp でいくつかのスレッドを見つけましたが、ashx に関連するコードを実際に示したスレッドは 1 つだけです。残念ながら、機能していないようで、その理由はわかりません。これは、javascript 呼び出しのコードと、ashx 応答です。
var sPay = getEl('chkPay').checked ? "pay=1" : "";
var sUrl = "/Calculator/GetCalcResult.ashx?jsoncallback=?" + sPay;
$.getJSON(sUrl, function (data) {
console.log("Success:" + data);
}).error(function (xhr, ajaxOptions, thrownError) {
console.log("Status:" + xhr.status);
console.log("Error:" + thrownError);
});
そして、ashxハンドラー...
var jsonstr =
"{\"calculatorresults\":{" +
"\"employees\" : \"" + employeeCount + "\"" +
"\"pay\" : \"" + calculationResult.PayTotal + "\"" +
"\"total\" : \"" + calculationResult.Total + "\"" +
"}}";
context.Response.ContentType = "application/json";
context.Response.Write(string.Format("{0}({1});", context.Request["jsoncallback"], jsonstr));