Php 如何发布到返回文本的URL编码API?
我有一个独特的情况。我们正在使用Ytel的X5云联系中心。他们有一个API,允许我们向数据库中添加人员 您通过GET将数据发送到API(奇怪,我知道,但我无法控制服务器,因为它属于Ytel) 所以我对所有字段都进行了URL编码。我知道生成的字符串是正确的,因为如果我复制该字符串并将其粘贴到浏览器中,然后按enter键,就会收到一条成功消息 成功消息是纯文本的 调用这种类型的API的正确方法是什么 我尝试使用jQuery/Ajax,但始终得到“Allow Control Access原始标头不存在,因此不允许使用localhost…”。因此,我尝试将“数据类型”设置为“jsonp” 这就成功了!它成功地将数据放入数据库,唯一的缺点是,来自服务器的响应不是jsonp,而是纯文本。因此,即使api请求成功,也将始终调用“error”回调,因为ajax希望返回jsonp对象 所以现在我试图通过PHP进行API调用,但我仍然不知道“正确”的方法是什么 是否可以用javascript(或PHP)打开一个网页,并将输出(也称为“网页”)存储到一个变量中,然后我可以对该变量求值Php 如何发布到返回文本的URL编码API?,php,jquery,ajax,http,jsonp,Php,Jquery,Ajax,Http,Jsonp,我有一个独特的情况。我们正在使用Ytel的X5云联系中心。他们有一个API,允许我们向数据库中添加人员 您通过GET将数据发送到API(奇怪,我知道,但我无法控制服务器,因为它属于Ytel) 所以我对所有字段都进行了URL编码。我知道生成的字符串是正确的,因为如果我复制该字符串并将其粘贴到浏览器中,然后按enter键,就会收到一条成功消息 成功消息是纯文本的 调用这种类型的API的正确方法是什么 我尝试使用jQuery/Ajax,但始终得到“Allow Control Access原始标头不存在
另一个有趣的注意事项是,如果我在文件获取内容(URL)之前调用urlencode(URL)或rawurlencode(URL),那么文件获取内容将失败。出于某种原因,urlencode和rawurlencode编码为:和/,这会导致文件\u get\u内容失败。有什么想法吗?对于将来阅读本文的人: 我必须将我的值发布到服务器上的php脚本中,并使用php进行API调用。这就像调用
文件获取内容($URL)一样简单代码>
注意:为了文件获取内容()
要处理URL,必须在PHP.ini文件中将“allow\u fopen\u URL”设置为“yes” 对于将来阅读本文的任何人:
我必须将我的值发布到服务器上的php脚本中,并使用php进行API调用。这就像调用文件获取内容($URL)一样简单代码>
注意:为了文件获取内容()
要处理URL,必须在PHP.ini文件中将“allow\u fopen\u URL”设置为“yes”
- 从不为
数据类型:“jsonp”
输入用户类型:“POST”
- 如果在localhost上运行,则会出现错误
允许控制访问源站标题不存在,因此请尝试使用此插件允许从源站访问:
对于Google Chrome:
对于Firefox:
- 从不为
数据类型:“jsonp”
输入用户类型:“POST”
- 如果在localhost上运行,则会出现错误
允许控制访问源站标题不存在,因此请尝试使用此插件允许从源站访问:
对于Google Chrome:
对于Firefox:curl还是file\u get\u内容?我花了几个小时试图用CuRL实现这一点,现在我正在尝试file\u get\u内容,但它一直告诉我参数不正确。我只是仔细检查了一下,并且在php.ini中将allow\u url\u fopen设置为on。介意发布你的curl/file\u get\u内容吗,这样我们就可以查看是否有什么不对劲的地方?当然,只要我知道如何回复我自己的帖子。LOLAPI需要一个GET
,但您正在发送类型:“POST”
。这很奇怪。您是否尝试了数据类型:“text”
?卷曲或文件获取内容?我花了几个小时试图用CuRL实现这一点,现在我正在尝试file\u get\u内容,但它一直告诉我参数不正确。我只是仔细检查了一下,并且在php.ini中将allow\u url\u fopen设置为on。介意发布你的curl/file\u get\u内容吗,这样我们就可以查看是否有什么不对劲的地方?当然,只要我知道如何回复我自己的帖子。LOLAPI需要一个GET
,但您正在发送类型:“POST”
。这很奇怪。您是否尝试了数据类型:“text”
?
jQuery.ajax({
url: ytelPostingString,
cache: false,
type: "POST",
dataType: "jsonp",
//What do you want to do when the request succeeds?
success: function(result) {
console.log(result);
console.log("Success");
},
//What do you want to do when the request fails?
error: function(result) {
console.log("Error:" + result);
console.log("Failure");
}
});