跨域Ajax表单在Internet Explorer中提交

时间:2012-07-30 09:27:16

标签: ajax internet-explorer jquery cross-domain

我的网站上有这种形式,与zoho CRM集成。

我所做的是提交ajax表单。它适用于除Internet Explorer之外的所有浏览器。

这是我正在使用的代码:

$.ajax({
                    type: 'POST',
                    url: 'https://crm.zoho.com/crm/WebToLeadForm',
                    crossDomain: true,
                    data: {
                        "xnQsjsdp":"ppmcCsqovwVthYo*kRl79w$$", 
                        "xmIwtLD":"VhOb6HhGDim4uPu3Iakv-bchDcGQB5gh", 
                        "actionType":"TGVhZHM=", 
                        "returnURL": "http://www.taxday.co.uk/", 
                        "First Name":$("#contact-name").val(),
                        "Last Name":$("#contact-subject").val(), 
                        "Phone":$("#contact-home-number").val(), 
                        "Email":$("#contact-email").val(),
                        "Description" : $("#contact-message").val(),
                        "LEADCF1":prof,
                        "Street" : $("#contact-address").val(),
                        "Zip Code" : $("#contact-postcode").val()
                    },
                    dataType: 'json',
                    success: function(responseData, textStatus, jqXHR) {
                       alert("Form Submitted");
                    },
                    error: function (responseData, textStatus, errorThrown) {
                       alert("Form Submitted");
                    }
                });

但交易警报来自IE,但未在zoho结束时捕获该线索

非常感谢任何帮助。

由于

1 个答案:

答案 0 :(得分:1)

对于跨域,IE要求您使用XDomainRequest而不是XMLHttpRequest。 jQuery没有这样做,所以你必须手动完成:

    if ($.browser.msie && window.XDomainRequest) {
        // Use Microsoft XDR
        var xdr = new XDomainRequest();
        xdr.open("get", url);
        xdr.onload = function() {
            // XDomainRequest doesn't provide responseXml, so if you need it:
            var dom = new ActiveXObject("Microsoft.XMLDOM");
            dom.async = false;
            dom.loadXML(xdr.responseText);
        };
        xdr.send();
    } else {
        $.ajax({...});
    }

请参阅以下论坛帖子JQUERY

http://forum.jquery.com/topic/cross-domain-ajax-and-ie

并且在堆栈中询问相同的问题

Jquery $.ajax fails in IE on cross domain calls

此致 马赫什, Zoho CRM。