我正在尝试将json字符串从客户端传递到服务器,我有一个JSON.stringify-ed数组,然后在一个url中发送到服务器,如下所示:
http://localhost/sublimation/index.php/index/imgCreate/ { “名称”: “pillow.png”, “元件”: “篮球-2.png”, “elAngle”:0 “ELTOP”:78, “elLeft”:117,” elHeight “:90,” elWidth “:90,” captionA “:” “ ”卡帕尔“:0 ”capAG“:200, ”capAB“:200, ”capATop“:112, ”capALeft“:141,” capASize “:12,” captionB “:””, “capBR”:0 “capBG”:200, “capBB”:200, “capBTop”:112, “capBLeft”:141, “capBSize”:12, “照片” : “#”, “picTop”:0 “picLeft”:0 “picHeight”:20, “picWidth”:110, “picAngle”:0}
现在返回错误400 msg:
HTTP错误400.请求网址无效。
我设法让它发挥作用的唯一方法是缩短字符串,其他任何失败。 因为它看起来json不是最受欢迎的东西因为我没有设法找到任何甚至远程帮助谷歌。
有没有人有想法?
TNX, IDO
EDIT !!; 我根据建议编辑了代码,这是我现在得到的:(仍然是同样的错误)
答案 0 :(得分:1)
即使篇幅较短,这肯定不是有效的网址。在URL的路径段中不允许使用“,{,},#和may:等字符。您必须对它们进行URI-secape(”变为%22,依此类推)。也许您的浏览器会自动为您执行此操作,并且生成的URL达到了Web服务器的长度限制,然后返回400.
使用POST请求可以解决问题。您可以传输比URL更多的数据。
答案 1 :(得分:0)
你需要对你的json进行编码,因为你在json中有一些特殊的字符,如果它们在url中就可以进行交互。 This可以提供帮助或提供线索。
问题也可能出在#
。
答案 2 :(得分:0)
看起来你是通过GET而不是POST发送你的JSON。 GET太长会导致错误,容易出问题。编码JSON字符串也会有所帮助。