为了账号安全,请及时绑定邮箱和手机立即绑定

PHP 解析从 Internet Explorer 发送的 Ajax 请求

PHP 解析从 Internet Explorer 发送的 Ajax 请求

PHP
慕容森 2022-06-17 17:06:58
我正在制定一个学校的实时时间表。现在当我测试它时,我只在 internet explorer 中得到一个错误。我使用 ie v.11 和字符集 UTF-8当我将当前学生的数据发送到 php 脚本时,有一些字符,如 ä,ö,ü 会解析为 ?。但仅在 InternetExplorer 中。如果我发送这样的 URL:http://adopraesenz.ipwin.ch/data/students.php?q=getWirth Nalia;3:Kürzel;0;0;4;0;0;0;并希望像这样在 php 中接收它们$q = $_REQUEST["q"];echo $q;我得到这个输出:getWirth Nalia;3:K?rzel;0;0;4;0;0;0;我正在发送这样的数据:function getData(str) {            var requestURL = "http://adopraesenz.ipwin.ch/data/students.php?q=" +str;            var request = new XMLHttpRequest();            request.onreadystatechange = function() {                           if(this.readyState === 4 && this.status === 200){                    loadJson(request);                }            };            request.open("GET", requestURL, true);            request.send();        }有关更多代码或信息,请询问。
查看完整描述

1 回答

?
繁花不似锦

TA贡献1851条经验 获得超4个赞

在 PHP中urlencode,urldecode如果您想通过 GET 请求发送数据,您应该始终使用。首先对您的参数进行编码,并在收到后再次对其进行解码。大多数网络服务器会为您进行解码,因此您大部分时间只需调用编码代码。还要检查您的表单是否在 html 和 http-header 中使用相同的字符集(首选 utf-8)


来自官方 php 文档的示例


编码


<?php

echo '<a href="mycgi?foo=', urlencode($userinput), '">';

解码(网络服务器大部分时间都会为您执行此操作)


<?php

$query = "my=apples&are=green+and+red";


foreach (explode('&', $query) as $chunk) {

    $param = explode("=", $chunk);


    if ($param) {

        printf("Value for parameter \"%s\" is \"%s\"<br/>\n", urldecode($param[0]), urldecode($param[1]));

    }

}

一个更简单的解决方案是使用 post 请求而不是 get,这是发送 json 数据的首选方式。


查看完整回答
反对 回复 2022-06-17
  • 1 回答
  • 0 关注
  • 177 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号