Php 如何发布到返回文本的URL编码API?

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原始标头不存在

我有一个独特的情况。我们正在使用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)打开一个网页,并将输出(也称为“网页”)存储到一个变量中,然后我可以对该变量求值


另一个有趣的注意事项是,如果我在文件获取内容(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");
    }

});