当前位置: 首页 > 面试题库 >

jQuery和Ajax的远程POST请求

桂志新
2023-03-14
问题内容

我需要通过Ajax向远程域发出POST请求,我知道Same-Origin Policy的限制,但我读过,有可能在服务器上的PHP中建立网桥以转发请求。

事实是我不知道如何编写此桥,也无法在Google上找到信息。
我想我需要使用CURL。

有人可以解释一下我怎么写吗?


问题答案:

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

这个怎么运作:

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

请记住首先 放置一些服务器身份验证方法 ,因为在示例中我没有编写 任何 方法 ,否则该页面将是一台不错的 垃圾邮件机器

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

一些/其中/在/您的/服务器/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



 类似资料:
  • 我试图通过ajax发布json数据。json数据包含一个大的html表。然而,这个POST请求被转换成GET请求,我得到错误414(请求-URI太长)。我知道jsonp POST请求转换成GET,但是为什么我的json请求转换成GET?

  • 问题内容: 我正在写一个基于烧瓶的小型站点,我想使用Ajax将数据从客户端发送到服务器。到目前为止,我仅使用Ajax请求从服务器检索数据。这次我想通过POST请求提交数据。 这是烧瓶侧的接收器,我将其简化为仅记录一条消息,以避免在此路由的实现中出现任何不必要的错误: 提交ajax请求时,flask给了我400错误 我也可以在浏览器的Web开发人员控制台中看到这一点 为什么flask不使用请求中提供

  • 本文向大家介绍jquery中AJAX请求 $.post方法的使用,包括了jquery中AJAX请求 $.post方法的使用的使用技巧和注意事项,需要的朋友参考一下 使用jQuery的$.post方法可以以POST形式向服务器发起AJAX请求。$.post方法是jQuery的实用工具方法。 post和get发送方式的特点, GET 方法提交数据不安全,数据置于请求行,客户端地址栏可见; GET 方法

  • 问题内容: 似乎已经在stackoverflow上讨论过类似的内容,但是我找不到完全一样的东西。 我正在尝试发送带有CORS(跨源资源共享)的Cookie,但无法正常工作。 这是我的代码。 我在请求HEADER中看不到此Cookie。 问题答案: 您无法通过JavaScript在CORS请求上设置或读取Cookie。尽管CORS允许跨域请求,但cookie仍然受浏览器的同源策略约束,这意味着只有来

  • 本文向大家介绍Jquery中$.post和$.ajax的用法小结,包括了Jquery中$.post和$.ajax的用法小结的使用技巧和注意事项,需要的朋友参考一下 Jquery的$.ajax的用法: jQuery.ajax( options ) : 通过 HTTP 请求加载远程数据,这个是jQuery 的底层 AJAX 实现。简单易用的高层实现见 $.get, $.post 等。 $.ajax()

  • 本文向大家介绍深入理解Ajax的get和post请求,包括了深入理解Ajax的get和post请求的使用技巧和注意事项,需要的朋友参考一下 1.get请求 2.post请求 以上这篇深入理解Ajax的get和post请求就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。