>  기사  >  위챗 애플릿  >  WeChat 애플릿 wx.request(인터페이스 호출 방법)에 대한 자세한 설명과 예

WeChat 애플릿 wx.request(인터페이스 호출 방법)에 대한 자세한 설명과 예

高洛峰
高洛峰원래의
2017-01-09 10:50:025467검색

WeChat 애플릿 wx.request----인터페이스 호출 방법

최근에 작업 관리 시스템의 WeChat 애플릿 버전을 개발했는데, Java 백엔드로 인터페이스를 보낼 때 몇 가지 문제가 발생했습니다.

공식 인터페이스

공식 인터페이스는 wx.request라고 하며, 요청 방법은 비교적 간단합니다. 다음은 공식 홈페이지에 나와 있는 요청 예시입니다.

wx.request({
 url: 'test.php', //仅为示例,并非真实的接口地址
 data: {
   x: '' ,
   y: ''
 },
 header: {
   'content-type': 'application/json'
 },
 success: function(res) {
  console.log(res.data)
 }
})

문제

wx.request 요청 헤더의 콘텐츠 유형은 기본적으로 application/json입니다. "application/x-www-form-urlencoded"를 사용하는 등 메서드를 변경하려는 경우 기본 application/json을 찾을 수 있습니다. 대신에 이 메소드가 추가되었습니다. 또한, jquery.ajax로 요청할 경우, application/json 메소드를 사용하여 요청하더라도 얻는 데이터 형식이 다릅니다. 메서드를 사용하면 ajax가 요청 데이터를 &name1=value1&name2 =value2 형식으로 변환합니다. 이로 인해 콘텐츠 유형을 기반으로 요청 데이터를 구문 분석할 때 WeChat이 의도적으로 이를 수행하는지 아니면 단순한 버그인지는 알 수 없습니다. . 요컨대, 그것은 나에게 불필요한 문제를 가져왔습니다.

WeChat 애플릿은 로컬에서 디버깅할 때 http를 사용할 수 있습니다. 휴대폰에서 테스트할 때 요청 방법과 도메인 이름이 불법인 경우 다음 오류가 보고됩니다.

微信小程序 wx.request(接口调用方式)详解及实例

요청을 용이하게 하기 위해 wx.request를 간단히 캡슐화할 수 있습니다. 이는 다시 호출할 때 훨씬 더 편리할 것입니다. 코드는 다음과 같습니다.

var app = getApp();
function request(url,postData,doSuccess,doFail,doComplete){
   var host = getApp().conf.host;
   wx.request({
    url: host+url,
    data:postData,
    method: 'POST', 
    success: function(res){
     if(typeof doSuccess == "function"){
       doSuccess(res);
     }
    },
    fail: function() {
     if(typeof doFail == "function"){
       doFail();
     }
    },
    complete: function() {
     if(typeof doComplete == "function"){
       doComplete();
     }
    }
   });
 }
}
 
module.exports.request = request;

인터페이스가 다른 곳에서 자주 사용되는 경우 원래는 함수를 작성한 다음 다른 js 호출에 대해 함수를 노출하려고 생각했지만 나중에 wx.request에서 async 설정이 유효하지 않으며 비동기 요청만 보낼 수 있다는 것을 알았습니다. 함수를 작성하고 싶습니다. 인터페이스를 호출하여 얻은 데이터를 반환하는 것이 더 어렵습니다.

읽어 주셔서 감사합니다. 이 내용이 모든 사람에게 도움이 되기를 바라며 이 사이트를 지원해 주셔서 감사합니다!

WeChat 애플릿 wx.request(인터페이스 호출 방법) 관련 기사에 대한 자세한 설명과 예를 보려면 PHP 중국어 웹사이트를 주목하세요!


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.