gpt4 book ai didi

php - 使用 jQuery 和 Ajax 的远程 POST 请求

转载 作者:可可西里 更新时间:2023-11-01 01:02:50 25 4
gpt4 key购买 nike

我需要通过 Ajax 向远程域发出 POST 请求,我知道存在同源策略的限制,但我读过可以在我的服务器上用 PHP 建立桥接来转发请求.

事实上,我不知道如何编写此桥,而且我在 Google 上找不到相关信息。
我想我需要使用 CURL。

有人能告诉我怎么写吗?

最佳答案

如果您需要代理或“Bridge”,您可以尝试如下:您可以实现对该 PHP 脚本的简单 AJAX 调用,并将该 POST 重定向到您需要的另一台服务器。

工作原理:

  1. 创建 Proxy.php 并粘贴内容。
  2. 让一个原本发送请求的页面将 AJAX 请求发送到 proxy.php 而不是目标服务器。
  3. 请求将被重定向到目标服务器。
  4. 如果需要结果,您可以选择设置选项 CURLOPT_RETURNTRANSFER

请记住首先放置一些服务器身份验证方法,因为我在示例中写了none,否则该页面将是一个很好的垃圾邮件机器

编辑:我的意思是使用您的服务器向目标服务器提交故障请求。无论如何,为您的用户添加一些简单的身份验证并不是那么糟糕:)

some/where/in/your/server/proxy.php

<?php
/* You might want some authentication here */
/* check authentication */
/* Authentication ended. */
$url = 'http://target.com/api'; //Edit your target here
foreach($_GET as $getname => $getvar) {
$fields[$getname] = urlencode($getvar); //for proxying get request to POST.
}

foreach($_POST as $postname => $postvar) {
$fields[$postname ] = urlencode($postvar); //for proxying POST requests.
}
//url-ify the data for the POST
foreach($fields as $key=>$value) { $fields_string .= $key.'='.$value.'&'; }
rtrim($fields_string, '&');

//open connection
$ch = curl_init();

//set the url, number of POST vars, POST data
curl_setopt($ch,CURLOPT_URL, $url);
curl_setopt($ch,CURLOPT_POST, count($fields));
curl_setopt($ch,CURLOPT_POSTFIELDS, $fields_string);

//execute post
$result = curl_exec($ch);

//close connection
curl_close($ch);

我假设您已经知道发送 POST ajax 请求的方法。如果不知何故你不是,请尝试阅读 http://www.openjs.com/scripts/jx/jx.php

关于php - 使用 jQuery 和 Ajax 的远程 POST 请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18800376/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com