首先,我对此很陌生,我肯定会错误地使用一些行话,但希望你能理解我的意思。 好的,我有一个 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 时,有一个额外的客户端请求 header ,上面写着
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
它在 TextView 中看起来像一个不错的 html 页面
使用IE8时的响应只有263长,类型是
text/html
这是一个小的 javascript,给出了 top.location.href=
我的 mysql 数据库设置为 utf-8
所以我认为我的 php 处理程序实际上没有设置为从 javascript 中获取一些 href,但可以很好地处理 html 从而更新数据库?
所以这可能是导致请求不更新 IE8 中的数据库的原因吗? IE8 中 http 请求的默认字符集是什么? 我可以通过在请求中插入 header 以某种方式让 IE8 以 utf-8 发送它来更改我的代码吗?如果是这样,我将如何修改 xmlhttprequest 来这样做? 我完全在这里吠叫错误的树吗?
最佳答案
一些 friend 帮助我解决了这个问题,不幸的是,这个解决方案有点难以解释,但它与我的页面在需要登录的页面中使用 iframed 有关,即使该功能不依赖于 cookie与 IE 看到作为第三方发送的 cookie 导致 IE 使上层站点的登录 session 无效
关于php - 我有一个表,我用它通过 ajax 或 jquery 更新 mysql,适用于 firefox、opera、chrome 和 safari,但不适用于 IE8,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5920060/