【发布时间】:2013-04-06 06:35:13
【问题描述】:
我正在尝试使用 ajax 将 textarea 字段的文本发送到 PHP 文件,该文本包含 HTML 字符并且不应被编码。
使用FormData 可以完美运行,但是 ie 9 和更早的版本不支持它!我试图通过将requestHeader 设置为text/plain;charset=UTF-8; 或multipart/form-data 以string 发送数据,但它不起作用!
我使用的代码是:
var string = '<td clas="tdClass">some text<?php echo $contents; ?></td>';
var data = new FormData();
data.append("data" , string);
var xhr = (window.XMLHttpRequest) ? new XMLHttpRequest() : new activeXObject("Microsoft.XMLHTTP");
xhr.open( 'post', '/path/to/php', true );
xhr.send(data);
在 IE 9 中执行此操作的另一种方法是什么?
【问题讨论】:
-
我喜欢您不检查 FormData 而是检查 XMLHttpRequest 的方式,还有什么是 html 字符?你的意思是html标签?你想避免什么样的编码?
-
文本包含
< > ' " & ? .等字符,我需要按原样发送文本! -
必须对值进行编码,以防它包含表单字段分隔符。但是用于检索服务器代码中的表单字段的 API 应该对其进行解码并返回原始字符串。如果您不使用 API,则必须自己进行。
-
不能通过设置
headerRequestcontent-type/content-description/content-transfer-encoding/boundary来实现吗?我正在阅读一些与此相关的文章,但它非常复杂和令人困惑,我不知道该怎么做或者它是否会起作用!
标签: javascript ajax xmlhttprequest