Firefox浏览器中传输json数据时报not well-formed错误

本文介绍了解决使用jQuery应用中的jqGrid框架时,在Firefox3浏览器上出现的“not well-formed”错误的方法。通过设置服务器响应的ContentType为text/plain来避免此问题。

     这些天学习jQuery应用中的jqGrid框架,发现当页面在向服务器请求数据,服务器返回json格式的数据时Firefox3会报“not well-formed”错误。中文浏览器这个错误应该是"未组织好"。上网查看了一篇资料

http://www.fengfly.com/plus/view-46335-1.html

发现解决办法是:在JAVA中需要设定传输的文本格式ContentType为"text/plain"。

具体代码如下:

HttpServletResponse response = null; //这里需要得到HttpServletResponse对象

response.setContentType("text/plain");。

至于默认情况下传输的文本格式本人没具体研究,不太清楚,但可以确认的一点是默认传输的文本格式不是"text/plain"。

不过之前做过例子传输的是xml数据,那种方式就没有报“not well-formed”错误,猜测默认传输的文本格式是"text/xml"。

 

<think>好的,我现在要解决用户的问题:“while parsing target library list: not well-formed (invalid token)”。首先,我需要理解这个错误信息的含义和常见原因。用户可能在编译或构建Qt项目时遇到了这个问题,特别是在处理项目文件(如.pro文件)或者某些配置文件时。 首先,“not well-formed”通常与XML解析错误有关,因为XML要求严格的格式。而“invalid token”可能意味着存在非法字符或语法错误。在Qt的项目中,可能涉及到qmake的.pro文件,或者某些XML配置文件,比如Android清单文件等。但用户提到的是“target library list”,这让我想到可能是在处理依赖库的列表时出错。 接下来,我需要考虑用户可能的操作场景。用户可能在添加库文件时路径中包含特殊字符,比如空格或括号,而没有正确引用。例如,在.pro文件中使用LIBS += -L/path/to/lib,如果路径中有空格,需要用引号括起来。另外,可能是.pro文件中的语法错误,比如缺少反斜杠换行符,或者使用了错误的变量名。 然后,我需要思考用户没有明说的深层需求。用户可能不太熟悉Qt项目文件的语法规则,或者在处理复杂项目时遇到了配置问题。他们需要具体的解决步骤,而不仅仅是错误信息的解释。因此,我应该提供逐步排查的方法,包括检查路径中的特殊字符、验证.pro文件的语法、检查XML配置文件的结构等。 另外,用户可能遇到这个问题时,已经尝试过一些方法但未解决,所以需要详细且清晰的步骤。例如,检查库路径是否正确,是否有拼写错误,确保所有括号和引号正确闭合。如果涉及第三方库,可能需要确认库文件是否损坏或格式不正确。 还要考虑不同平台下的差异,比如Windows中使用反斜杠和Linux中使用正斜杠,路径中的空格处理等。同时,提醒用户清理项目并重新构建,有时候旧的构建文件可能导致解析错误。 最后,确保回答结构清晰,分点列出可能的原因和解决方案,帮助用户逐步排查问题。可能需要提到使用Qt Creator的语法高亮和错误提示功能,或者手动运行qmake来查看更详细的错误信息。如果问题依旧存在,建议用户提供更多上下文或示例代码,以便进一步诊断。</think>在Qt项目开发中,遇到 `while parsing target library list: not well-formed (invalid token)` 错误通常与 **项目配置文件(.pro或.pri文件)的语法错误** 或 **依赖库路径的格式问题** 相关。以下是详细排查和解决方法: --- ### **常见原因及解决方案** #### **1. 路径含特殊字符未正确转义** - **问题**:在 `.pro` 文件的 `LIBS` 或 `INCLUDEPATH` 中,若路径包含空格、括号 `()`、逗号 `,` 等特殊字符,需用双引号包裹路径。 - **修复示例**: ```qmake # 错误写法(路径含空格): LIBS += -L"C:/Program Files/My Lib" INCLUDEPATH += "C:/My Project/include" # 正确写法(添加双引号): LIBS += -L"C:/Program\ Files/My\ Lib" # 注意空格用反斜杠转义或直接引号包裹 INCLUDEPATH += "C:/My Project/include" ``` #### **2. 变量拼接语法错误** - **问题**:使用 `$${}` 或 `$$()` 拼接路径时格式错误,或变量名拼写错误- **修复示例**: ```qmake # 错误写法(变量拼接缺少闭合括号): LIBS += -L$${MY_LIB_PATH}/lib # 正确写法: LIBS += -L$${MY_LIB_PATH}/lib # 或使用 $$() 格式 ``` #### **3. XML配置文件格式错误** - **问题**:若涉及 Android 开发(如 `AndroidManifest.xml`)或其他 XML 配置文件,标签未闭合或属性值缺少引号。 - **修复示例**: ```xml <!-- 错误写法(属性值未用引号) --> <uses-feature android:name=android.hardware.camera /> <!-- 正确写法 --> <uses-feature android:name="android.hardware.camera" /> ``` #### **4. 第三方库文件损坏** - **问题**:引用的静态库(.a/.lib)或动态库(.so/.dll)文件损坏,或格式不兼容当前编译平台。 - **解决方案**: 1. 重新编译生成库文件。 2. 检查库文件是否与当前架构匹配(如 x86 与 arm 的区别)。 --- ### **调试步骤** 1. **检查.pro文件语法** - 使用 Qt Creator 的 **语法高亮** 功能,观察是否有红色波浪线提示错误- 手动运行 `qmake` 命令,查看终端输出的具体错误位置: ```bash qmake -d -d -d # 启用详细调试输出 ``` 2. **逐行注释排除** - 暂时注释 `.pro` 文件中与库相关的行(如 `LIBS += ...`),逐步排查哪一行触发错误。 3. **清理并重建项目** - 删除 `build` 目录及 `Makefile` 等生成文件,重新执行 **qmake** → **构建**。 --- ### **扩展场景** - **动态生成的库列表** 若通过脚本动态生成库路径,需检查脚本输出的格式是否符合 qmake 要求(如换行符、空格转义)。 - **跨平台路径兼容性** 在 Windows 和 Linux 之间切换时,注意路径分隔符(`/` vs `\`)和大小写敏感问题: ```qmake win32 { LIBS += -L"C:/Program Files/MyLib" } else:unix { LIBS += -L"/opt/mylib" } ``` --- ### **关联问题** -错误出现在非 Qt 项目中(如 CMake),需检查 `CMakeLists.txt` 中 `target_link_libraries()` 的语法。 - 如果涉及 `QML` 模块导入,检查 `qmlimportscanner` 是否因路径问题解析失败。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值