如何仅通过简单的javascript将数据发布到另一台服务器并获取返回值?

如何仅通过简单的javascript将数据发布到另一台服务器并获取返回值?,javascript,http-post,cross-domain,Javascript,Http Post,Cross Domain,需要返回搜索值的跨域post javascript格式。整个工作需要在不使用任何外部库的情况下完成,并且只需要使用javascript 示例: 我的服务器域名1.com 想要使用json数据将数据发布到domain2.com/searchTableInfo1{data1:'info1',data2:'info2',data3:'info3',data4:'info4',…}(比如用一些参数搜索表)作为回报,我也希望获得json格式的搜索结果。您需要在服务器部件中添加允许源代码,并为前端部件设置一

需要返回搜索值的跨域post javascript格式。整个工作需要在不使用任何外部库的情况下完成,并且只需要使用javascript

示例: 我的服务器域名1.com
想要使用json数据将数据发布到
domain2.com/searchTableInfo1
{data1:'info1',data2:'info2',data3:'info3',data4:'info4',…}(比如用一些参数搜索表)作为回报,我也希望获得json格式的搜索结果。

您需要在服务器部件中添加允许源代码,并为前端部件设置一些标题,这里有详细的示例

您需要在服务器部件中添加允许源代码,并为前端部件设置一些标题,这里有详细的示例

Javascript是,因此,它不能通过post请求等方式直接访问发送到服务器的变量

如果要向服务器发出post请求(这可以在vanilla JS中完成),则可以通过服务器检索值并以这种方式返回JSON

例如(这来自domain1.com上的JS,是对domain2.com的异步跨域请求):

根据domain2.com上的服务器端语言,它可能看起来像这样(示例是PHP,但您可以运行Node.js、ASP.Net和各种其他选项):


然而,使用post请求将需要对domain2.com上的数据进行一些服务器端处理(非JS——当然,除非您在Node中!)。如果这是不可能的,您可以尝试通过更改上面JS中的一些VAR来执行
get
异步请求,它将为domain1.com提供相同的跨域访问,但您必须了解Javascript的范围以及它作为客户端语言可以访问的内容

如果您还有更多问题,请告诉我。

Javascript是,因此它无法通过post请求之类的方式直接访问发送到服务器的变量

如果要向服务器发出post请求(这可以在vanilla JS中完成),则可以通过服务器检索值并以这种方式返回JSON

例如(这来自domain1.com上的JS,是对domain2.com的异步跨域请求):

根据domain2.com上的服务器端语言,它可能看起来像这样(示例是PHP,但您可以运行Node.js、ASP.Net和各种其他选项):


然而,使用post请求将需要对domain2.com上的数据进行一些服务器端处理(非JS——当然,除非您在Node中!)。如果这是不可能的,您可以尝试通过更改上面JS中的一些VAR来执行
get
异步请求,它将为domain1.com提供相同的跨域访问,但您必须了解Javascript的范围以及它作为客户端语言可以访问的内容


如果您有更多问题,请告诉我。

服务器需要通过使用CORS头来允许此操作-然后您可以使用
fetch
XMLHttpRequest
对数据进行
POST
请求,并根据您选择使用的两种vanilla JS AJAX方法中的哪一种来适当地处理响应?感谢Jaromanda X的回复,但可以给出一些示例或简要说明。Isaiah,这篇文章只介绍了如何在不使用JQuery的情况下进行AJAX调用。我这里不是说Ajax调用或JQuery。好的,以赛亚,我已经给出了一些更清楚的例子,我认为这可能有助于服务器需要通过使用CORS头来实现这一点-然后您可以使用
fetch
XMLHttpRequest
对数据进行
POST
请求,并根据您选择使用的两种vanilla JS AJAX方法中的哪一种来适当地处理响应?感谢Jaromanda X的回复,但可以给出一些示例或简要说明。Isaiah,这篇文章只介绍了如何在不使用JQuery的情况下进行AJAX调用。我这里不是说Ajax调用或JQuery。好的,以赛亚,我已经给出了一些更清晰的例子,我认为这可能会有所帮助
var http = new XMLHttpRequest();
var url = "domain2.com/searchTableInfo1";
var params = JSON.stringify(myJSONobj);
http.open("POST", url, true);

//Send the proper header information along with the request
http.setRequestHeader("Content-type", "application/x-www-form-urlencoded");

http.onreadystatechange = function() {
    if(http.readyState == 4 && http.status == 200) {
        alert(http.responseText);//the JSON string from server will show here
    }
}
http.send(params);
<?php
    $data = json_decode($_POST['myJSONobj']);

    //handle data processing here

    $jsonToReturn = array("Enter processed data here");
    echo json_encode($jsonToReturn);
?>