Запросите API, используя jquery ajax с php - PullRequest
0 голосов
/ 26 февраля 2020

Привет, ребята, я застреваю в своем коде, я запрашиваю php API для получения данных с использованием jquery ajax. пожалуйста, помогите мне с решением

Ajax код

     $.ajax({
      url: request_url+"courses.php",
      type: 'POST',
      dataType: 'jsonp',
      cors: true ,
      contentType:'application/json',
      data: { request_courses: courses },
      secure: true,
      headers: {
        'Access-Control-Allow-Origin': '*',
      },
      beforeSend: function (xhr) {
        xhr.setRequestHeader ("Authorization", "Basic " + btoa(""));
      },
      success: function (data){
        console.log("helo "+data);
      }
   });

Php код API

   if(isset($_POST['request_courses'])){
        $courses = mysqli_query($conn, "SELECT * FROM `courses`");
        while ($rows = mysqli_fetch_assoc($courses)) {
            $data[] = $rows;
        }
        echo json_encode(array('status' => 1,'message'=>'responce_courses','data'=>$data));
    }

Ошибка При запуске этого кода

courses.html:1 A cookie associated with a cross-site resource at http://localhost/ was set 
without the `SameSite` attribute. A future release of Chrome will only deliver cookies with 
cross-site requests if they are set with `SameSite=None` and `Secure`. You can review 
cookies in developer tools under Application>Storage>Cookies and see more details at 
https://www.chromestatus.com/feature/5088147346030592 and 
https://www.chromestatus.com/feature/5633521622188032.



Access to XMLHttpRequest at 'file:///home/punkaj/Music/Cordova/ithub/www/index.html' from 
origin 'null' has been blocked by CORS policy: Cross origin requests are only supported for 
protocol schemes: http, data, chrome, chrome-extension, https.
jquery.js:2 GET file:///home/punkaj/Music/Cordova/ithub/www/index.html net::ERR_FAILED
send @ jquery.js:2
ajax @ jquery.js:2
h @ plugins.js:45
i @ plugins.js:45
dispatch @ jquery.js:2
y.handle @ jquery.js:2

1 Ответ

0 голосов
/ 26 февраля 2020

Прежде всего, вы уверены в URL файлов? 'file: /// home / punkaj / Music / Cordova / ithub / www/index.html' кажется немного отрывочным IMO. Убедитесь, что это правильно.

А во-вторых, похоже, что AJAX указанный файл (курсы. php) пытается установить в браузере нового повара ie, что является плохой практикой в REST API. Лучше просто возвращать / выводить любое значение, которое вы хотите, и когда у вас есть это значение в вашей функции «success» AJAX, вы можете сохранить его там как cook ie обратно в исходный скрипт.

Наконец, похоже, что вы получаете файл напрямую, используя протокол FTP (file: ///), а не протокол HTTP (http: //) для получения содержимого HTML файл. Не могу оказать дальнейшую помощь, не увидев исходный код

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...