私はCefSharps Chromiumブラウザが本当に新しく、jquery ajaxリクエストの結果を取得する方法を理解するのが難しいです。CefSharp - AJAXリクエストの結果を取得
私の最初の試みは、AJAXリクエストをEvaluateScriptAsync
に渡すことでした。実際にスクリプトは動作します。私のCef-TaskはAJAXの作業が完了するまで待たずに済むので、結果は完全にはわかりませんが、結果コードやステータスコードは表示されません。
ここでの例(単なるサンプルコード):
その後var tasks = pdBrowser.EvaluateScriptAsync(@"
(function(){
$.ajax({
type: ""POST"",
dataType: ""json"",
cache: false,
url: ""_resources/php/ajaxRequests.php"",
async: false,
data: {
action: ""insertCrossPlatform"",
type: """",
values: JSON.stringify(""foo bar"")
},
success: function(response) {
if (typeof response === 'string' && response.substring(0, 5) == ""ERROR"")
{
return response;
}
else
{
//pageReload();
return ""OK"";
}
},
error: function(xhr, textStatus, errorThrown) {
return errorThrown + ""\n"" + xhr.responseText;
},
complete: function() {
return ""COMPLETE"";
}
});
})();", null);
tasks.ContinueWith(t =>
{
if (!t.IsFaulted)
{
var response = t.Result;
if (response.Success)
{
if (response.Result != null)
{
MessageBox.Show(response.Result.ToString());
}
}
else
{
MessageBox.Show(response.Message, "Ein Fehler ist aufgetreten", MessageBoxButtons.OK, MessageBoxIcon.Exclamation);
}
}
}, TaskScheduler.Default);
私はSchemeHandlerがあることを読んだが、私はそれを正しく実装する方法を理解していません。誰か助けてくれますか?
ありがとうございます。
匿名のクロージャで値を返した場合、それは 'EvaluateScriptAsync'の結果として返されます。 paramsをjsonとして返し、 'C#で' WebRequest'を実行します。完了すると 'UI'を更新するために' JS'を実行します。私はこのアプローチを特にお勧めしません。下記の代替案を見てください。 – amaitland