【问题标题】:I have table that i use to update mysql via ajax or jquery and works for firefox,opera,chrome and safari but not IE8我有用于通过 ajax 或 jquery 更新 mysql 的表,适用于 firefox、opera、chrome 和 safari 但不适用于 IE8
【发布时间】:2011-05-07 08:53:11
【问题描述】:

首先,我对此很陌生,我肯定会错误地使用一些行话,但希望你能理解我的意思。 好的,我有一个带有一组数字的 HTML 表,当您单击它们时它们会递增,然后发送到数据库。 我一直在使用这条线

$.get('character/statincrease/stat/'+statname);

或这一行

sendAjaxRequest('http://www.myfakeurl.com/character/statincrease/stat/'+statname);

为了将更新后的变量发送到 php 处理程序,该处理程序又更新 mysql 数据库。 任何一条线都可以与带有 chrome、firefox、safari 和 opera 的 mac 机器完美配合 还有带有chrome的windows7机器,但是当使用带有IE8的同一win7机器时,数据库不会更新。在最长的时间里,我为 ajax 请求和我的变量尝试了很多不同的代码变体,但没有任何效果。我一直在想,也许 IE8 忽略了请求,或者以某种服务器无法理解的方式解析变量,但是通过使用 fiddler,我能够看到 http 请求确实是使用 IE8 执行的。事实上,它在 IE8 和 chrome 中都返回了 200 响应,但是当使用 IE8 时,我能发现的唯一区别是,当使用 chrome 时,会有一个额外的客户端请求标头读取

Accept-Charset:ISO-8859-1,utf-8;q=0.7,*;q=0.3

Accept-Language 读取附加字符

en-us,en;q=0.8

反对 IE8

en-us

来自服务器的响应也不同 使用 chrome 时的内容长度为 4568,内容类型为

text/html;charset=utf-8

它在文本视图中看起来像一个不错的 html 页面

使用 IE8 时响应只有 263 长,类型为

text/html

这是一个小的 javascript,它给出了 top.location.href=

我的 mysql 数据库设置为 utf-8

所以我认为我的 php 处理程序实际上没有设置为从 javascript 中获取一些 href 而是处理 html 从而更新数据库?

所以这可能是导致请求不更新 IE8 中的数据库的原因吗? IE8 中 http 请求的默认字符集是什么? 我可以通过以某种方式在请求中插入标头以使 IE8 以 utf-8 发送它来更改我的代码吗?如果是这样,我将如何修改 xmlhttprequest 这样做? 我在这里完全吠错了树吗?

【问题讨论】:

  • 什么是“statname”,是否包含必须编码的字符?
  • staname=HP 或 MP 任意选择
  • 所以请求最终是 /character/statincrease/stat/HP
  • 所以 IE 中的响应类似于 "top.location.href=" ?您在服务器上是否有任何文件可以输出此响应?
  • 所以经过更多搜索后,我读到 IE8 可能存在跨域 xmlhttprequests 问题,因为这是 iframed 到另一个站点,这可能是导致服务器响应顶部的跨域问题.loation.href 标记到其 iframe 所在的站点?

标签: php jquery mysql ajax internet-explorer-8


【解决方案1】:

一些朋友帮我解决了这个问题,不幸的是,这个解决方案有点过头了与 IE 看​​到作为第三方发送的 cookie 导致 IE 使上层站点上的登录会话无效

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多