JavaScript和在字符串内部
JavaScript & inside a string
我有一个输入字段接受学院名称,还有其他一些输入字段用于其他用途。
1)接下来,我用所有这些输入和 创建一个JSON结构2)对JSON数据执行JSON. stringify (JSONdata)。
3)设置XHR内容类型标头为:
xhr.setRequestHeader("Content-Type", "application/X-www-form-urlencoded");
用这个字符串化的输入调用post请求到服务器。
一切都很好,除了这个特殊的大学输入,它看起来像这样:
St. Joseph's College of Arts & Science, Cityname.
在服务器端解析数据后,我希望我的字符串在服务器端看起来像这样:
"college":"St. Joseph''s College of Arts & Science, Cityname",
它看起来像:
"college":"St. Joseph''s College of Arts ',' Science, Bangalore",
&
被,
取代,因此抛出错误:
: Unexpected end of JSON input<br> at Object.parse (native)<br> at server.js:206:28<br> at Layer.handle [as handle_request]
我想让它接受所有的输入字段,不管里面有什么
你只需要对你要发送的字符串进行uri编码,就像你通过手动创建的uri编码表单数据发送字符串一样:
var data = "Data="+encodeURIComponent(JSON.stringify(requestObject));
// ----------------^^^^^^^^^^^^^^^^^^^----------------------------^
xhr.setRequestHeader("Content-Type", "application/X-www-form-urlencoded");
xhr.send(data);
&
在uri编码中是特殊的(与其他几个字符一样)。encodeURIComponent
确保这些在另一端被正确编码以进行传输和解码。一旦解码,您就可以使用您在环境中使用的任何JSON解析器将JSON(字符串)转换为对象结构。
您正在发送JSON,但提供标准<form>
的内容类型。在表单中,&
用于分隔键值对。
告诉服务器你给它一个东西,然后又给它另一个东西,只会导致痛苦。
传递正确的application/json
头,一切都应该很好。
相关文章:
- 如何在函数内部为jquery工具提示调用不同的var字符串
- POST encodeURI查询字符串内部服务器错误 500
- 是否有一个简单的 JQuery 过程来替换页面上每段内部文本的字符串
- 如果通过字符串变量发送,HTML内部的子窗口将显示为文本
- 调用一个位于字符串内部的JavaScript函数,并将params与一个变量连接起来
- 将服务字符串参数转换为数组的 Angular 内部
- 我可以将 HTML 字符串分配给 HTML DOM 节点的内部 HTML 属性吗?
- 如何从内部HTML字符串中删除隐藏的标签
- 对字符串的内部数组进行排序
- 如何在 js 中使用 .match(regEx) 仅获取不带分隔符的内部字符串
- Javascript将ID添加到字符串内部的元素中
- 将html元素转换为字符串Javascript(使用搜索获得,而不是内部/外部html)
- 如何从框架内部检查函数是否存在(从字符串)
- 将字符串收集到forEach内部的单个数组中
- 如果我将数组名称作为字符串传递给JS函数,那么如何在函数内部循环
- 我如何用Javascript从JSON字符串中获得内部异常消息
- 如何使用正则表达式从字符串中删除带有 HTML 标记的 HTML 标记的内部文本
- 我如何返回当前对象作为JSON字符串从内部的对象与jquery或javascript
- 快逃!——!javascript中的内部字符串
- 将属性值从一个属性复制到另一个属性中的内部字符串