0

I'm calling a SOAP WebService from JavaScript. In IE my code works, but on Firefox the error function is called with textStatus = "error", xhr.status = 0 and errorThrown empty. I tried different answers, found on SO, but couldn't solve the problem.

    jQuery.support.cors = true;
    jQuery.ajax({
        url: serviceUrl,
        beforeSend: function (xhr) {
            xhr.setRequestHeader("SOAPAction", soapAction);
        },
        type: "POST",
        dataType: "xml",
        data: soap,
        success: function(data, textStatus, jqXHR ) {
            // report success
            success.style.display='block';
        },
        error: function (jqXHR, textStatus, errorThrown) {
            // report error
            fail.style.display='block';
            alert(textStatus + ": " + jqXHR.status + " / " + errorThrown);
        },
        contentType: "text/xml; charset=utf-8"
    });

Browserversions: IE 9, Firefox 23.0.1

4

1 に答える 1

0

これは、Same origin ポリシーによるものです。ajax を使用して外部サイトを呼び出すことはできません。本当に使用したい場合は、JSONP を使用する必要があります。または、これにサーバー側プロキシを使用できます。つまり、サーバー側で外部サイトを呼び出し、その Web サービスに対して ajax 呼び出しを行います。

于 2013-09-05T11:35:55.477 に答える