Javascript enctype=";“多部分/表单数据”;ie9和chrome的工作原理不同

Javascript enctype=";“多部分/表单数据”;ie9和chrome的工作原理不同,javascript,forms,cross-domain,multipartform-data,Javascript,Forms,Cross Domain,Multipartform Data,我希望将一些数据发布到另一个enctype等于multipart/form data的域,因为我希望未修改的数据位于服务器端。 以下是我的测试代码: <textarea name="txt" rows="20" cols="80"> </textarea> <script> function x_domain_post(url, data) { var dd = document.createElement('div'); var ifrnam

我希望将一些数据发布到另一个enctype等于multipart/form data的域,因为我希望未修改的数据位于服务器端。 以下是我的测试代码:

<textarea name="txt" rows="20" cols="80">
</textarea>
<script>
function x_domain_post(url, data)
{
    var dd = document.createElement('div');
    var ifrname = "client_proxy";
    dd.innerHTML = "<iframe id='" + ifrname + "' name='" + ifrname + "' width=0 height=0 ></iframe>";
    document.getElementsByTagName('body')[0].appendChild(dd);
    var ifr = document.getElementById(ifrname);

    var f = document.createElement('form');
    f.action = url;
    f.method = "post";
    f.enctype = "multipart/form-data";
    f.target = ifr.name;
    f.innerHTML = f.innerHTML + "<textarea name='request'>default</textarea>";
    document.getElementsByTagName("body")[0].appendChild(f);
    document.getElementsByName("request")[0].value=data;
    f.submit()
    setTimeout(function(){document.getElementsByTagName("body")[0].removeChild(f);}, 1000);
}

</script>
<button onclick="x_domain_post('http://192.168.232.128/add', document.getElementsByName('txt')[0].value)">
但在IE9中:

POST /add HTTP/1.1
...
Content-Type: application/x-www-form-urlencoded
...
request=a%0D%0A%0D%0Ab%0D%0A%0D%0Ao
感谢您的任何帮助

这有帮助吗

显然在IE中,你必须设置 “编码”的形式,而不是 “enctype”。好消息是,你可以 设置这两个值时不必担心和担心 这将解决这个问题

POST /add HTTP/1.1
...
Content-Type: application/x-www-form-urlencoded
...
request=a%0D%0A%0D%0Ab%0D%0A%0D%0Ao