【问题标题】:IIS Request.Form and JavaScript XMLHTTPRequest not working in Firefox and ChromeIIS Request.Form 和 JavaScript XMLHTTPRequest 在 Firefox 和 Chrome 中不起作用
【发布时间】:2016-10-30 18:59:15
【问题描述】:

我正在使用 XMLHttpRequest 将 FormData 发送到 IIS 服务器。在服务器端,当浏览器为IE时Request.Form对象有表单数据,而当浏览器为FireFox或Chrome时则没有表单数据。下面的示例使用 FormData 对象向服务器提交表单。对于 IE,Request.Form.Count 是 1。对于 FireFox 和 Chrome,它是零。在所有情况下,我都希望结果为 1。我希望我做错了什么,但我没有看到它。

这是客户端代码:

<script>

    function SubmitForm() {
        var http = new XMLHttpRequest()
        var data = new FormData()
        data.append("Text1", document.getElementById("Text1").textContent);
        http.open("POST", "ajaxtest.aspx", true);
        http.setRequestHeader("Content-Type", "multipart/form-data");
        http.onreadystatechange = function () {
            if (http.readyState == 4 && http.status == 200) {
                alert(http.responseText);
            }
        }
        http.send(data);
    }
</script>
<body>
    <input id="Text1" type="text" value="This is text to the server" />
    <input id="Button1" type="button" value="button" onclick="SubmitForm()" />
</body>

这是服务器代码:

Protected Sub Page_Load(sender As Object, e As EventArgs) Handles Me.Load
    If Request.HttpMethod = "POST" Then
        Response.Write("Request.Form.Count=" & Request.Form.Count)
        Response.End()
    End If
End Sub

任何建议或解释和解决方案将不胜感激。

【问题讨论】:

    标签: javascript asp.net xmlhttprequest form-data


    【解决方案1】:

    原来问题出在 setRequestHeader 上。我删除了它并获得了所需的行为。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2013-04-21
      • 2015-01-27
      • 2018-12-06
      • 2015-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-09-14
      相关资源
      最近更新 更多