この回答で問題を解決しようとしましたが、うまくいきません。
全体として、AJAX経由で(htmlページのjavascript経由で)アクセスしたい多くの機能を備えたWCFプロジェクトを作成しました。
以下は、私の Web サービス内の関数の例です:
iService
[OperationContract]
[WebInvoke(ResponseFormat = WebMessageFormat.Json)]
string GetStuff();
サービス
public string GetStuff()
{
string url = string.Format("http://myapi.co.uk/api/mystuff");
WebRequest myReq = WebRequest.Create(url);
// Where USERNAME and PASSWORD are constants
string usernamePassword = USERNAME + ":" + PASSWORD;
CredentialCache mycache = new CredentialCache();
mycache.Add(new Uri(url), "Basic", new NetworkCredential(USERNAME, PASSWORD));
myReq.Credentials = mycache;
myReq.Headers.Add("Authorization", "Basic " + Convert.ToBase64String(new ASCIIEncoding().GetBytes(usernamePassword)));
WebResponse wr = myReq.GetResponse();
Stream receiveStream = wr.GetResponseStream();
StreamReader reader = new StreamReader(receiveStream, Encoding.UTF8);
string content = reader.ReadToEnd();
return content;
}
Stream
また、直接返品も試みましたのでご了承ください。
私のjavascriptとajaxに!
function getData()
{
jQuery.support.cors = true;
$.ajax({
type: "GET",
url: "http://localhost:15574/Service1.svc/GetStuff",
contentType: "application/json; charset=utf-8",
dataType: "jsonp",
success: function(result) {
alert(result);
},
error: function(msg) {
alert("Fail: " + msg.status + ":" + msg.statusText);
}
});
}
エラーセクションにヒットしましたが、奇妙に成功エラーメッセージが表示されました...
当初、問題は外部 API からの JSON の形式が正しくないためだと考えていましたが、完全に有効な JSON を返すように Web サービスを変更しようとしたところ、同じエラーが表示されました。前述したように、ストリームを返すように Web サービスを変更しようとしましたが、うまくいきませんでした。
これについて何か助けていただければ幸いです。私は非常に感謝しています。
アップデート
PS WCF テスト クライアントでは正常に動作しているようで、期待どおりの文字列を返します。
PPS ステータスを取得するためにエラー関数に別のパラメーターを追加したところ、parsererror
PPPS を取得しています。エラーに渡される 3 番目のパラメーターは次のとおりです。jquery171014696656613195724_1341477967656 was not called