jsonpエンドポイントでriaサービスを使用しています。サービスファイルでメソッドを呼び出すと、ieとfirefoxで正常に機能しますが、Chromeで機能する場合や、「認証されたサービスではクロスドメインJavaScriptコールバックがサポートされていません」というメッセージが表示される場合があります。エラー。私も認証されたサービスを利用していません。
これが私が持っているものについてのコードです。
Jsonpサービス
[EnableClientAccess(RequiresSecureEndpoint = false)]
public class PPolJsonService : LinqToEntitiesDomainService<PPolAdvEntities>
{
public IQueryable<QuestionEntity> GetCompleteSurvey()
{
............
}
}
javascriptコード
function (data) {
var Params = {};
Params.type = 'GET';
Params.url = 'http://127.0.0.1:81/PPolSilverlight-Web-Services-PPolJsonService.svc/JSONP/GetCompleteSurvey;
Params.dataType = 'jsonp';
Params.data = { data:'somedata'};
Params.success = function (data) { };
Params.jsonpCallback = "ppolv2"
$.ajax(Params);
});
web.configファイルでの私の設定は<authentication mode="Forms">
私が設定<authentication mode="None">
した場合、私はクロムに関するすべての問題を解決することができます。ただし、アプリケーションの残りの部分には認証が必要です。そのため、「mode=Forms」として使用する必要があります。ご覧のとおり、私のサービスは認証を使用していません。
なぜこのエラーが発生するのですか?それに対する解決策はありますか?
ノート:
ちなみに私はweb.configに次のような他の設定があります
<webHttpEndpoint>
<standardEndpoint crossDomainScriptAccessEnabled="true"
automaticFormatSelectionEnabled="true"/>
</webHttpEndpoint>
またはclientaccesspolicy.xmlのこれら
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="http://*"/>
<domain uri="https://*" />
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
しかし、それらのどれも私を助けていません。
前もって感謝します。