Home > Web Front-end > JS Tutorial > body text

How to Resolve \'Origin is Not Allowed by Access-Control-Allow-Origin\' Error in Cross-Origin AJAX Requests?

Mary-Kate Olsen
Release: 2024-10-19 11:30:01
Original
781 people have browsed it

How to Resolve

Problem: "Origin is Not Allowed by Access-Control-Allow-Origin"

When performing cross-origin AJAX requests using JavaScript, you may encounter the following error:

Origin http://localhost:8080 is not allowed by Access-Control-Allow-Origin
Copy after login

This error occurs due to the "Same Origin Policy," which is a security feature implemented in browsers to prevent malicious scripts from accessing data from other domains.

Cause

The "Same Origin Policy" restricts AJAX requests to the same domain, protocol, and port as the originating page. If your JavaScript is hosted on a different domain, protocol, or port than the server you're trying to access, the request will be blocked.

Solution: JSONP

To circumvent the "Same Origin Policy," one common solution is to use JSONP (JSON with Padding). JSONP allows you to make cross-origin requests by wrapping the response in a callback function that is defined in your own JavaScript.

Here's how JSONP works:

  1. Define a callback function in your JavaScript.
  2. Send an AJAX request with the URL ending in ?callback={callback_function_name}.
  3. The server responds with JSON data wrapped in the callback function.
  4. The callback function is executed, receiving the response data.

Example

To resolve the error in the given code, which is attempting to make a cross-origin POST request to YouTube, you can use JSONP as follows:

<code class="javascript">var script = document.createElement('script');
script.src = "http://gdata.youtube.com/action/GetUploadToken?callback=callbackFunction";
document.head.appendChild(script);

function callbackFunction(data) {
    // Use the response data
}</code>
Copy after login

In this example, callbackFunction is a function defined in your own JavaScript, which will receive the response from YouTube as an argument.

Note: It's important to ensure that the server you're sending the request to supports JSONP and that you use the correct callback function name in the URL.

The above is the detailed content of How to Resolve \'Origin is Not Allowed by Access-Control-Allow-Origin\' Error in Cross-Origin AJAX Requests?. For more information, please follow other related articles on the PHP Chinese website!

source:php
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
Latest Articles by Author
Popular Tutorials
More>
Latest Downloads
More>
Web Effects
Website Source Code
Website Materials
Front End Template
About us Disclaimer Sitemap
php.cn:Public welfare online PHP training,Help PHP learners grow quickly!