Home Web Front-end JS Tutorial What are some problems with WeChat JSSDK in ajax requesting different pages?

What are some problems with WeChat JSSDK in ajax requesting different pages?

Jun 04, 2018 pm 03:54 PM
ajax javascript

Below I will share with you a brief discussion of the WeChat JSSDK issue with ajax requests for different pages. It has a good reference value and I hope it will be helpful to everyone.

Problem scenario:

I have a form content on page A that needs to be printed using a Bluetooth printer, fill in the form information, and request it through ajax The information is sent to the B file (PHP) for processing. After jumping to the B page through the form normally, it can be printed out, because in addition to the PHP that processes the data, the B page also contains JS code, which is the JSSDK part. However, when sent through an ajax request, there is no response, and all jssdk except wx.ready and wx.config cannot be executed. (Both files A.B have wx.config and wx.ready configurations)

For example, the parameters for sending data:

wx.invoke('sendDataToWXDevice',data,function(res){
  //微信提供的接口,只有这么一个回调函数,如果通过ajax请求,则无法进入回调函数
 if(res.err_msg=='sendDataToWXDevice:ok')
 {
  alert("打印成功");
  window.history.go(-1);
 }
 else
 {
  alert("打印失败");
 } 
 });
Copy after login

So I guessed that by requesting the PHP file, the returned data contained the JS code part of my B page. In other words, page A had wx.config and wx.ready, and page B returned The content also has these two interfaces. In order to eliminate this problem,

I removed all WeChat interfaces on page B. Only the content that needs to be sent after processing the form is saved in an input.

//返回 处理后的数据
echo &#39;<input type = "hidden" name = "print_str" id = "print_str" value="&#39;.$hex_str.&#39;"/ >&#39;;
echo &#39;<input type = "hidden" name = "device_id" id = "device_id" value="&#39;.$device_ID.&#39;"/ >&#39;;
?>
Copy after login

The original jump page printing was changed to asynchronous request printing. In fact, sending data from WeChat to the device is still executed on the A page, and the B file is only responsible Returns the data passed from A to B and processed through encryption. Therefore, delete all mixed html and JS codes in the B file. What should be noted is whether the config configuration contains the beta:true attribute, because it involves the hardware SDK. , and whether the hardware SDK interface to be used is also filled in the interface list parameters

. I felt that my idea was correct at the time. But every time I use document.write to write down the returned results in the callback functions of wx.invoke including openWXDeviceLib, sendDataToWXDevice, etc., but I soon find that the output after wx.invoke is not executed every time, and my original page The content was also cleared. I was not aware of this problem at this time, so I kept testing until I output the data returned by page B before invoke (the above document.write content is my success callback function after the request is successful) Output), I realized that the data I wanted to send had become undefind when I executed the invoke method. I suddenly discovered that the original content of my page had been cleared (because it had previously jumped to B The page was printed, so it was blank, ~ ~, I got used to it, and didn’t notice any changes). Later I switched to alert output, and I could print normally. That is to say, in the ajax encapsulated callback function of JQUERY, use document.write to output , will reset the page content (the reason why I use document.write to output is that in a certain stage of the previous test, the config originally used as debugging popped up information through the alert window, but I don’t know why it used document.write The form is written on the page. I have forgotten what happened at that time, which caused this error, but I am still aware of this problem of JQ)

Remember: Using document.write to output content in JQuery's ajax success callback function will reset the page content. As for other callback functions, you can take a look at it yourself.

The above is what I compiled for everyone. I hope it will be helpful to everyone in the future.

Related articles:

A brief discussion on different methods of introducing less, sass and css styles into Vue-cli single file components

Solve the loader problem of vue-cli created projects

Use vue to write a sample code for a carousel chart that imitates a simple book

The above is the detailed content of What are some problems with WeChat JSSDK in ajax requesting different pages?. For more information, please follow other related articles on the PHP Chinese website!

Statement of this Website
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn

Hot AI Tools

Undresser.AI Undress

Undresser.AI Undress

AI-powered app for creating realistic nude photos

AI Clothes Remover

AI Clothes Remover

Online AI tool for removing clothes from photos.

Undress AI Tool

Undress AI Tool

Undress images for free

Clothoff.io

Clothoff.io

AI clothes remover

AI Hentai Generator

AI Hentai Generator

Generate AI Hentai for free.

Hot Article

R.E.P.O. Energy Crystals Explained and What They Do (Yellow Crystal)
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Best Graphic Settings
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. How to Fix Audio if You Can't Hear Anyone
3 weeks ago By 尊渡假赌尊渡假赌尊渡假赌
WWE 2K25: How To Unlock Everything In MyRise
4 weeks ago By 尊渡假赌尊渡假赌尊渡假赌

Hot Tools

Notepad++7.3.1

Notepad++7.3.1

Easy-to-use and free code editor

SublimeText3 Chinese version

SublimeText3 Chinese version

Chinese version, very easy to use

Zend Studio 13.0.1

Zend Studio 13.0.1

Powerful PHP integrated development environment

Dreamweaver CS6

Dreamweaver CS6

Visual web development tools

SublimeText3 Mac version

SublimeText3 Mac version

God-level code editing software (SublimeText3)

How to solve the 403 error encountered by jQuery AJAX request How to solve the 403 error encountered by jQuery AJAX request Feb 20, 2024 am 10:07 AM

Title: Methods and code examples to resolve 403 errors in jQuery AJAX requests. The 403 error refers to a request that the server prohibits access to a resource. This error usually occurs because the request lacks permissions or is rejected by the server. When making jQueryAJAX requests, you sometimes encounter this situation. This article will introduce how to solve this problem and provide code examples. Solution: Check permissions: First ensure that the requested URL address is correct and verify that you have sufficient permissions to access the resource.

How to solve jQuery AJAX request 403 error How to solve jQuery AJAX request 403 error Feb 19, 2024 pm 05:55 PM

jQuery is a popular JavaScript library used to simplify client-side development. AJAX is a technology that sends asynchronous requests and interacts with the server without reloading the entire web page. However, when using jQuery to make AJAX requests, you sometimes encounter 403 errors. 403 errors are usually server-denied access errors, possibly due to security policy or permission issues. In this article, we will discuss how to resolve jQueryAJAX request encountering 403 error

How to get variables from PHP method using Ajax? How to get variables from PHP method using Ajax? Mar 09, 2024 pm 05:36 PM

Using Ajax to obtain variables from PHP methods is a common scenario in web development. Through Ajax, the page can be dynamically obtained without refreshing the data. In this article, we will introduce how to use Ajax to get variables from PHP methods, and provide specific code examples. First, we need to write a PHP file to handle the Ajax request and return the required variables. Here is sample code for a simple PHP file getData.php:

How to solve the problem of jQuery AJAX error 403? How to solve the problem of jQuery AJAX error 403? Feb 23, 2024 pm 04:27 PM

How to solve the problem of jQueryAJAX error 403? When developing web applications, jQuery is often used to send asynchronous requests. However, sometimes you may encounter error code 403 when using jQueryAJAX, indicating that access is forbidden by the server. This is usually caused by server-side security settings, but there are ways to work around it. This article will introduce how to solve the problem of jQueryAJAX error 403 and provide specific code examples. 1. to make

PHP and Ajax: Building an autocomplete suggestion engine PHP and Ajax: Building an autocomplete suggestion engine Jun 02, 2024 pm 08:39 PM

Build an autocomplete suggestion engine using PHP and Ajax: Server-side script: handles Ajax requests and returns suggestions (autocomplete.php). Client script: Send Ajax request and display suggestions (autocomplete.js). Practical case: Include script in HTML page and specify search-input element identifier.

PHP vs. Ajax: Solutions for creating dynamically loaded content PHP vs. Ajax: Solutions for creating dynamically loaded content Jun 06, 2024 pm 01:12 PM

Ajax (Asynchronous JavaScript and XML) allows adding dynamic content without reloading the page. Using PHP and Ajax, you can dynamically load a product list: HTML creates a page with a container element, and the Ajax request adds the data to that element after loading it. JavaScript uses Ajax to send a request to the server through XMLHttpRequest to obtain product data in JSON format from the server. PHP uses MySQL to query product data from the database and encode it into JSON format. JavaScript parses the JSON data and displays it in the page container. Clicking the button triggers an Ajax request to load the product list.

PHP and Ajax: Ways to Improve Ajax Security PHP and Ajax: Ways to Improve Ajax Security Jun 01, 2024 am 09:34 AM

In order to improve Ajax security, there are several methods: CSRF protection: generate a token and send it to the client, add it to the server side in the request for verification. XSS protection: Use htmlspecialchars() to filter input to prevent malicious script injection. Content-Security-Policy header: Restrict the loading of malicious resources and specify the sources from which scripts and style sheets are allowed to be loaded. Validate server-side input: Validate input received from Ajax requests to prevent attackers from exploiting input vulnerabilities. Use secure Ajax libraries: Take advantage of automatic CSRF protection modules provided by libraries such as jQuery.

Asynchronous data exchange using Ajax functions Asynchronous data exchange using Ajax functions Jan 26, 2024 am 09:41 AM

How to use Ajax functions to achieve asynchronous data interaction With the development of the Internet and Web technology, data interaction between the front end and the back end has become very important. Traditional data interaction methods, such as page refresh and form submission, can no longer meet user needs. Ajax (Asynchronous JavaScript and XML) has become an important tool for asynchronous data interaction. Ajax enables the web to use JavaScript and the XMLHttpRequest object

See all articles