php - CORS : Accessing ssl endpoint from non ssl site

标签 php jquery ajax ssl

我正在尝试从 http://站点访问我的 API 端点 (https)。

在我的 PHP 应用程序中,我将 header 设置为

header('Access-Control-Allow-Origin: *');

响应包含它。然而,如果我尝试通过 AJAX 调用端点,则会发生以下错误:

ERR_SSL_PROTOCOL_ERROR

证书似乎是有效的。我可以以某种方式禁用检查吗? 从非 SSL 站点访问 SSL 内容应该是安全的。正确吗?

最佳答案

正确的解决方案是解决您的证书问题,但如果这不可行,那么您可以使用 HTTP 服务器作为代理通过 PHP 的 cURL 获取 HTTPS 数据:

HTTP AJAX 调用

$.ajax({
    url: 'http://www.example.com/call_api.php',
    success: function(data){
        console.log(data);
    }
});

HTTP call_api.php

<?php
$ch = curl_init();

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // return response as a string
curl_setopt($ch, CURLOPT_URL, 'https://www.example2.com/api_file.php');
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);

$result = curl_exec($ch);

if(curl_getinfo($ch, CURLINFO_HTTP_CODE) === 200)
{
    echo $result;
}

HTTPS api_file.php

<?php
// some database stuff returning JSON or whatever
echo json_encode($db_rows);

关于php - CORS : Accessing ssl endpoint from non ssl site,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35941291/

相关文章:

php - 我可以在表单生成器中使用查询来获取 symfony 表单中的过滤集合吗

javascript - jQuery 循环遍历附加的 div

jquery - 是否有一个 JQuery 表达式将针对没有规定类的 div

javascript - 滚动突然停止在 wordpress 网站上工作

javascript - 有没有办法使用 Mapbox 将图层添加到通过 AJAX 回调生成的数据中?

c# - 如果发布后模型中的值发生变化,表单仍显示旧值

php - 如何更改 phpMyAdmin 中的权限

php - 如何将PHP代码插入数据库表中?

javascript - 将js变量传递给外部php页面

ajax - 一个适合ajax应用的广告系统