在传递变量时从Jquery AJAX执行cURL请求

时间:2018-02-04 12:53:24

标签: php jquery ajax curl get

我已经研究了很多关于PHP cURL的知识,并且已经知道了相当数量的Jquery Ajax但是我试图做的事情并不是直接的。我正在使用返回用户昵称的API登录按钮进行API调用。

然后我向包含curl参数的php文件发出ajax请求,我想在其中传递用户的昵称。

分辨

在AJAX请求中使用data我能够成功发送javascript变量nickname作为参数。

然后可以通过cURL PHP文件中的$nickname = $_GET['nickname'];访问该变量。

感谢 rollstuhlfahrer 提供下面标明的解决方案。

Ajax请求:

var nickname = API.getUserInfo().value.nickname;
$.ajax({
  method: 'GET',
  url: "/curl-php-file.php",
  cache: false,
  data: {
    nickname: nickname, // Sends data as a URL paramater
  }
  success: function(response) {
    // Data
    var data = response.data.data;
    console.log(data);
  },
  error: function(response, val) {
    console.log("AJAX Request Failed");
  }
});

cURL PHP文件:

$nickname = $_GET['nickname']; // Gets data from AJAX
require_once("../../../../../wp-load.php");
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_RETURNTRANSFER => 1,
CURLOPT_URL => 'https://.../?nickname=' . $nickname,
CURLOPT_HTTPHEADER => array(
  'Accept: application/json',
  'Authorization: MYTOKEN'
)
));
$resp   = curl_exec($curl);
wp_send_json_success(json_decode($resp));
curl_close($curl);
exit;

1 个答案:

答案 0 :(得分:1)

由于您使用的是ValueError: x and y must have same first dimension, but have shapes (58,) and (55,) ,因此您只需将其作为查询参数传递:

GET

另一种选择。如果内置字符编码,这有美感:

$.ajax({
  method: 'GET',
  url: "/curl-php-file.php?nickname=" + nickname,
  cache: false,
  success: function(response) {
    // Data
    var data = response.data.data;
    console.log(data);
  },
}

Source

然后在PHP代码中,检索传递的参数:

$.ajax({
  url: "/curl-php-file.php",
  method: "get", 
  data: { 
    nickname: nickname,
  },

并将其附加到您的网址:

$nickname = $_GET['nickname'];

如果昵称是有效的昵称,你应该做一些检查,然后再通过curl发送。