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

我研究了很多关于PHP cURL的知识,并且已经知道了相当数量的Jquery Ajax然而我正在尝试 要做的不是直截了当。 我正在使用API​​登录按钮进行API调用,该按钮返回用户昵称。</ p>

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

已解决</ h1>

在AJAX请求中使用 data </ code>我能够成功发送javascript变量昵称</ code>作为参数。 </ p>

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

感谢</ strong> rollstuhlfahrer </ strong>提供下面标明的解决方案。</ p>


n

Ajax请求:</ h3>

  var nickname = API.getUserInfo()。value.nickname; 
$ .ajax({
method:'GET',\ n url:“/ curl-php-file.php”,
cache:false,
data:{
nickname:nickname,//将数据作为URL参数发送
}
成功:函数(响应) {
// Data
var data = response.data.data;
console.log(data);
},
error:function(response,val){
console.log(“AJAX Request 失败“);
}
});
</ code> </ pre>

cURL PHP文件:</ h3>

  $ nickname =  $ _GET [ '昵称'];  //从AJAX获取数据
require_once(“../../../../../ wp-load.php”);
$ curl = curl_init();
curl_setopt_array($ curl,array(

CURLOPT_RETURNTRANSFER =&gt; 1,
CURLOPT_URL =&gt;'https://.../?nickname ='。$ nickname,
CURLOPT_HTTPHEADER =&gt;数组(
'接受:application / json',
'授权 :MYTOKEN'

));
$ resp = curl_exec($ curl);

wp_send_json_success(json_decode($ resp));
curl_close($ curl);
exit;
</ code> </ pre>
</ div>

展开原文

原文

I've researched a lot about PHP cURL and already know a fair amount of Jquery Ajax however what i'm trying to do isn't straight down the line. I'm making an API call using an API Login button that returns a users nickname.

I then make an ajax request to a php file containing the curl paramaters within which i want to pass the users nickname.

RESOLVED

Using data in the AJAX Request i was able to successfully send the javascript variable nickname as a parameter.

The variable was then accessible via $nickname = $_GET['nickname']; in the cURL PHP file.

Thank you to rollstuhlfahrer for providing the solution marked below.


Ajax Request:

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 File:

$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;

dsdsds12222
dsdsds12222 我已经使用以下建议中的更新代码更新了问题,为了您的利益,我在ajax请求之前添加了行,您可以看到正在设置的变量。如原始问题中所述,用户通过登录连接API,变量存储在AJAX请求之前返回的数据中。
2 年多之前 回复
duanmei1946
duanmei1946 这些都不是问题所在
2 年多之前 回复
douzhantao2857
douzhantao2857 如果您阅读下面的评论..我已经能够使用ajax请求中的数据作为参数传递变量,问题是phpcurl文件没有处理它。
2 年多之前 回复
dsgk40568
dsgk40568 然后显示用于获取昵称的相关代码,这基本上是第一条评论的要点
2 年多之前 回复
douzhuanfen5923
douzhuanfen5923 客户端,这是一个javascript变量。我可以在AJAX请求之前访问它,并且能够使用@rollstuhlfahrer下面的答案将其作为URL中的字符串传递,但是php脚本没有使用_GET过程读取它
2 年多之前 回复
duanke6057
duanke6057 哪里?在客户端还是服务器端?
2 年多之前 回复
dongshi1215
dongshi1215 在AJAX请求之前,我可以访问变量。
2 年多之前 回复
duanfei9278
duanfei9278 不清楚您可以访问此昵称的位置。第1步需要更多细节
2 年多之前 回复

1个回答



由于您使用的是 GET </ code>,因此您可以将其作为查询参数传递:</ p>

  $。ajax({
method:'GET',
url:“/ curl-php-file.php?nickname =”+ nickname,
cache:false,\ n success:function(response){
// Data
var data = response.data.data;
console.log(data);
},
}
</ code> </ pre>

另一种选择。如果是内置字符编码,它就具有美感:</ p>

  $。ajax({
url:“/ curl-php- file.php“,
方法:”获取“,
数据:{
昵称:昵称,
},
</ code> </ pre>

Source </ p>

然后在PHP代码中,检索传递的参数:</ p>
\ n

  $ nickname = $ _GET ['nickname']; 
</ code> </ pre>

并将其附加到您的网址:</ p>

  CURLOPT_URL =&gt;'https://.../?nickname ='。$ nickname,
</ code> </ pre>

你应该做一些检查, 如果昵称在发送之前是有效的昵称 卷曲。</ p>
</ div>

展开原文

原文

Since you are using GET, you can just pass it along as a query parameter:

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

Another option. This has the beauty if built-in character encoding:

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

Source

Then in your PHP code, you retrieve the passed parameter:

$nickname = $_GET['nickname'];

And append it to your URL:

CURLOPT_URL => 'https://.../?nickname=' . $nickname,

You should do some checking, if the nickname is a valid one before sending it off via curl.

dongsu1539
dongsu1539 谢谢你的建议修复了一切,我的js需要一秒钟来重新安排!
2 年多之前 回复
dongqiang5865
dongqiang5865 你检查过ajax调用是否传递了昵称? - 您可以在浏览器的开发人员工具中看到它。
2 年多之前 回复
dongmiao260399
dongmiao260399 我真的以为$ _GET ['昵称']; 建议可行,但不起作用。 返回:“必需的字符串参数'昵称'不存在”
2 年多之前 回复
dongxing2302
dongxing2302 如果答案满足您的问题,请不要犹豫,接受它
2 年多之前 回复
doujiu7704
doujiu7704 美丽,现在就试试这个回来!
2 年多之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐