我有用于通过ajax或jquery更新mysql的表,适用于Firefox,opera,chrome和safari,但不


I have table that i use to update mysql via ajax or jquery and works for firefox,opera,chrome and safari but not IE8

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

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

或这一行

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

为了将更新的变量发送到PHP处理程序,而PHP处理程序又会更新MySQL数据库。任何一条线都可以与带有Chrome,Firefox,Safari和Opera的Mac机器完美配合以及带有Chrome的Windows7计算机,但是当使用带有IE7的同一台Win8计算机时,数据库不会更新。长期以来,我为 ajax 请求和我的变量尝试了许多不同的代码变体,但没有任何效果。我一直在想也许IE8忽略了请求,或者以某种方式以服务器无法理解的方式解析变量,但是通过使用fiddler,我能够看到http请求确实正在使用IE8执行。事实上,它在IE8和chrome中都得到了200的响应,但是在使用IE8时,我能发现的唯一区别是,当使用chrome时,有一个额外的客户端请求标头,读取

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

和接受语言与附加字符一起阅读

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来做到这一点?我在这里完全吠错了树吗?

一些朋友帮助我解决了这个问题,不幸的是,解决方案有点超出我的解释,但它与我的页面被iframe在一个需要登录的页面中有关,即使该功能不依赖于cookie与IE看到作为第三方发送的cookie有关,导致IE使上层站点上的登录会话无效