gpt4 book ai didi

jquery - jsonp ajax 请求中的错误字符集

转载 作者:可可西里 更新时间:2023-11-01 09:47:18 24 4
gpt4 key购买 nike

我正在通过以下方式执行 ajax 请求:

function apiCall(resource, data, callback) {
if(data == undefined || data == null) data = {};
$.ajax({
dataType: 'jsonp',
data: data,
url: nodeUri + "/" + resource
}).success(callback).error(function(jqXHR, textStatus, errorThrown) { alert(errorThrown); });
}

虽然这适用于大多数调用,但某些 jsonp 请求失败时会在 firebug 控制台中使用以下字符串显示错误“未终止的字符串文字”:

jQuery151005229747375124583_1303069060...size chart women)\r\n\r\nx-small \r\n


当我复制请求正文并将 jquery 回调函数名称替换为 console.log 时,它失败并出现相同的错误,但是如果我在将其发回之前以 ANSI 模式将其复制到 Notepad++控制台,它工作正常。响应 header 中的字符集是 utf-8。

jquery 无法解析这些请求的原因可能是什么?

编辑:我正在使用 node.js 和 express 作为服务器。

这是我从 ajax 请求中得到的整个响应体:

jQuery151019804588618633323_1303079165535({"price":{"currency_code":"EUR","cents":12000},"image_colors":[{"blue":99,"hex":"636363","green":99,"red":99},{"blue":255,"hex":"ffffff","green":255,"red":255}],"default_image":{"big":"http://s32.dawandastatic.com/Product/9709/9709590/big/1271709158-113.jpg?20101021091023","mini":"http://s32.dawandastatic.com/Product/9709/9709590/mini/1271709158-113.jpg?20101021091023","listview":"http://s32.dawandastatic.com/Product/9709/9709590/listview/1271709158-113.jpg?20101215201220","thumb":"http://s32.dawandastatic.com/Product/9709/9709590/thumb/1271709158-113.jpg?20101021091023","listing":"http://s32.dawandastatic.com/Product/9709/9709590/listing/1271709158-113.jpg?20101021091023","full":"http://s32.dawandastatic.com/Product/9709/9709590/full/1271709158-113.jpg?20101021091023","long":"http://s32.dawandastatic.com/Product/9709/9709590/long/1271709158-113.jpg?20101021091023","pin":"http://s32.dawandastatic.com/Product/9709/9709590/pin/1271709158-113.jpg?20101215201220"},"user":{"name":"goodmorningmidnight","id":1791458,"restful_path":"/users/1791458"},"ranking":0.6636759628828178,"likes":0,"dislikes":0,"_id":"4da23faa2264ef7b9defbdac","base_price":null,"category":{"name":"1031","id":530,"restful_path":"/categories/530"},"category_id":530,"created_at":null,"description":"Rock / grau, weiß\r\n\r\n[ m a t e r i a l ]\r\n100 % wolle (leichte sommerwolle)\r\n\r\n[ d e t a i l s ]\r\nasymmetrisch\r\npatchwork design\r\nlagenlook\r\n\r\n[ s i z e s ]\r\nXS, S, M, L \r\n\r\n[ c a r e ]\r\nschonwäsche 30°C, mit ähnlichen farben waschen, nicht bleichen, nicht im wäschetrockner trocknen, bügeln mit mittlerer stufe\r\n\r\n[ s i z e c h a r t ]\r\n\r\n(size chart women)\r\n\r\nx-small \r\n
brust: (76-80 cm) 
\r\ntaille: (60-64 cm) 
\r\nhüfte: (84-88 cm)\r\n\r\nsmall 
\r\nbrust: (84-88 cm) 
\r\ntaille: (68-72 cm) 
\r\nhüfte: (92-96 cm)\r\n\r\nmedium 
\r\nbrust: (92-96 cm) 
\r\ntaille: (76-80 cm) 
\r\nhüfte: (100-104 cm)\r\n\r\nlarge 
\r\nbrust: (100-104 cm) 
\r\ntaille: (84-88 cm) 
\r\nhüfte: (108-112 cm)\r\n","ending":null,"id":9709590,"materials":"","name":"1.01 (all your summer songs)","product_url":"http://de.dawanda.com/product/9709590-101-all-your-summer-songs","quantity":1,"restful_path":"/products/9709590","tags":""});

我认为如果将 JSON 转换为 ANSI 就没问题,但在 utf-8 中似乎像这样被破坏了。

对象在通过 Mongoose 从 MongoDB 加载后,在服务器端使用 JSON.stringify 进行字符串化。

json请求失败的例子:http://like-my-style.com/#!single/9709590 .它适用于其他产品。

最佳答案

if(data == undefined || data == null) data = {};

data == null 检查值 nullundefined 所以你只需要检查一个而不是两个。

至于您的实际问题,您的 Node 代码似乎没有创建正确的 JSON 数据。尝试使用 JSON.stringify 创建您的响应,这样您就可以确信它是有效的 json。

您的数据子集是“weiß”,请尝试从您的描述中删除所有非标准字符,看看是否可以解决问题。

关于jquery - jsonp ajax 请求中的错误字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5696188/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com