Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/node.js/38.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 使用Ajax调用从外部URL获取JSON数据_Javascript_Ajax - Fatal编程技术网

Javascript 使用Ajax调用从外部URL获取JSON数据

Javascript 使用Ajax调用从外部URL获取JSON数据,javascript,ajax,Javascript,Ajax,我想用POST方法调用web服务这是url 我修改了url,因为我工作的公司的隐私,这是一个示例url,但原始url具有相同的结构 我已经在POSTMAN中用这个JSON字符串完成了: { "personid" : "20369" } 在《邮递员》中效果很好,我的状态是200 OK 但是在我的ajax调用中,我得到了一个500错误。net::ERR_中止了500个错误。 这是我的ajax调用: $.ajax({ url: "https://innovation.spa.uvm.mx:22

我想用POST方法调用web服务这是url

我修改了url,因为我工作的公司的隐私,这是一个示例url,但原始url具有相同的结构

我已经在POSTMAN中用这个JSON字符串完成了:

{
"personid" : "20369"
}
在《邮递员》中效果很好,我的状态是200 OK

但是在我的ajax调用中,我得到了一个500错误。net::ERR_中止了500个错误。 这是我的ajax调用:

$.ajax({
  url: "https://innovation.spa.uvm.mx:22580/webs-images/rest/imagx",
  type: "POST",
  dataType: 'json',
  contentType: 'application/json; charset=utf-8',
  data: JSON.stringify({
    "personid" : "20369"
  }),      
  success: function(result){
    console.log(JSON.stringify(result));
  },
  error: function(exception){
    alert("Error" + exception);
  }
});

您不是在发出POST请求,而是在发出GET请求

由于以下原因,JSONP无法发出POST请求

Web服务可能需要一个POST请求和错误,因为它没有得到一个POST请求和错误


你可能在那里打了一巴掌
jsonp
,试图规避。只有当您向发出请求的web服务明确地支持JSONP时,JSONP才会这样做(现在不应该支持JSONP,因为我们现在有CORS(CORS提供了更多的控制,并且没有JSONP固有的安全风险)



即使您删除了
jsonp
,您也在声明
contentType:'application/json;charset=utf-8',
但是
数据的值不是JSON。如果您将一个对象传递给
数据
,则使用带有URL的jQuery对其进行编码。如果你想发送JSON,你需要自己用
JSON编码。stringify

你不是在发出POST请求,而是在发出GET请求

由于以下原因,JSONP无法发出POST请求

Web服务可能需要一个POST请求和错误,因为它没有得到一个POST请求和错误


你可能在那里打了一巴掌
jsonp
,试图规避。只有当您向发出请求的web服务明确地支持JSONP时,JSONP才会这样做(现在不应该支持JSONP,因为我们现在有CORS(CORS提供了更多的控制,并且没有JSONP固有的安全风险)



即使您删除了
jsonp
,您也在声明
contentType:'application/json;charset=utf-8',
但是
数据的值不是JSON。如果您将一个对象传递给
数据
,则使用带有URL的jQuery对其进行编码。如果你想发送JSON,你需要自己用
JSON编码。stringify

你可以使用
jsonp
,但千万不要指定要使用的回调。如果您不需要
jsonp
,请尝试删除该选项。@Nicolas-jQuery将动态生成URL的回调部分。您可以选择使用
jsonp
,但绝不指定要使用的回调。如果您不需要
jsonp
,请尝试删除该选项。@Nicolas-jQuery将动态生成URL的回调部分。我为什么要设置GET?我正在使用jsonp,因为它是一个外部url,如果我不使用它,我会得到以下信息:已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“access control Allow Origin”头。@AlexPalacios-您之所以发出get请求,是因为我在本节第二段中提到的原因这个答案。@AlexPalacios-这个答案的第四段说这可能是因为你试图绕过同一原产地政策。你不能那样做。服务器必须授予您权限。为什么我要让您获取?我正在使用jsonp,因为它是一个外部url,如果我不使用它,我会得到以下信息:已被CORS策略阻止:对飞行前请求的响应未通过访问控制检查:请求的资源上不存在“access control Allow Origin”头。@AlexPalacios-您之所以发出get请求,是因为我在本节第二段中提到的原因这个答案。@AlexPalacios-这个答案的第四段说这可能是因为你试图绕过同一原产地政策。你不能那样做。服务器必须授予您权限。