uni-app中uni.request在微信小程序开发工具中请求服务器会改变response内容

uni-app中uni.request在微信小程序开发工具中请求服务器会改变response内容

示例代码:

uni.request({  
    method:'POST',  
    url: 'http://192.168.31.253:9501/test',  
    data: {  
        id: '6064'  
    },  
    header: {  
        'content-type': 'application/x-www-form-urlencoded',  
        'Authorization': "Bearer 544554",  
    },  
    success: (res) => {  
        console.log('request success',res.data);  
    }  
});

操作步骤:

将:589038405193474048 改变为:589038405193474000

预期结果:

将:589038405193474048 改变为:589038405193474000

实际结果:

将:589038405193474048 改变为:589038405193474000

bug描述:

php返回一串数字,uni.request post 后这串数字会发生改变:

将:589038405193474048 改变为:589038405193474000

详细问题描述在csdn:https://blog.csdn.net/mark885/article/details/135673543

请工程师重视。

image


更多关于uni-app中uni.request在微信小程序开发工具中请求服务器会改变response内容的实战教程也可以访问 https://www.itying.com/category-93-b0.html

3 回复

后端php代码: $number = 589038405193474048;
$resData = [
‘a’ => $number, ‘b’ => (string)$number
];
return $resData;

更多关于uni-app中uni.request在微信小程序开发工具中请求服务器会改变response内容的实战教程也可以访问 https://www.itying.com/category-93-b0.html


javascript 数字最大值知道是多少嘛

uni-app 中使用 uni.request 进行网络请求时,正常情况下不会改变服务器返回的 response 内容。然而,在微信小程序开发工具中,可能会遇到一些特殊情况,导致 response 内容与预期不一致。以下是一些可能的原因和解决方法:


1. 微信小程序开发工具的模拟器问题

微信小程序开发工具的模拟器可能会对网络请求进行一些处理,导致 response 内容与真实服务器返回的内容不一致。例如:

  • 模拟器可能会对 response 进行编码或解码。
  • 模拟器可能会对 response 进行压缩或解压缩。

解决方法:

  • 使用真机调试,检查 response 内容是否与服务器返回的一致。
  • 在开发工具中,关闭不必要的模拟器功能(如网络代理)。

2. 微信小程序的安全限制

微信小程序对网络请求有一些安全限制,可能会对 response 进行过滤或修改。例如:

  • 如果 response 中包含敏感信息(如 evalFunction),微信可能会对其进行处理。
  • 如果 responseContent-Type 不符合微信的要求,可能会导致解析错误。

解决方法:

  • 确保服务器返回的 Content-Type 正确,例如 application/json
  • 避免在 response 中包含敏感信息。

3. uni.request 的配置问题

uni.request 的配置可能会影响 response 的解析。例如:

  • 如果 dataType 设置为 json,但服务器返回的不是合法的 JSON 数据,可能会导致解析失败。
  • 如果 responseType 设置为 text,但服务器返回的是二进制数据,可能会导致内容被错误解析。

解决方法:

  • 检查 uni.request 的配置,确保 dataTyperesponseType 与服务器返回的数据类型一致。
  • 如果服务器返回的是二进制数据,可以将 responseType 设置为 arraybuffer

4. 服务器返回的内容问题

服务器返回的内容可能本身存在问题,例如:

  • 返回的数据格式不正确(如 JSON 格式错误)。
  • 返回的数据被服务器端进行了处理(如压缩、加密)。

解决方法:

  • 使用其他工具(如 Postman)直接请求服务器,检查返回的内容是否正确。
  • 如果服务器返回的是压缩数据,可以在 uni.request 中设置 header 来禁用压缩。

5. 微信小程序开发工具的缓存问题

微信小程序开发工具可能会缓存网络请求的结果,导致 response 内容与服务器返回的不一致。

解决方法:

  • 清除开发工具的缓存,重新发起请求。
  • uni.requesturl 中添加随机参数(如时间戳),避免缓存。

6. 调试方法

如果以上方法都无法解决问题,可以通过以下方式进一步调试:

  • uni.requestsuccess 回调中,打印 response 的原始数据,检查是否与服务器返回的一致。
  • 使用 fail 回调捕获错误信息,检查是否有异常。
  • 在服务器端记录请求日志,确保服务器返回的内容正确。

示例代码

uni.request({
  url: 'https://example.com/api',
  method: 'GET',
  dataType: 'json',
  success: (res) => {
    console.log('Response:', res.data); // 打印原始数据
  },
  fail: (err) => {
    console.error('Request failed:', err);
  }
});
回到顶部