向另一个域发送javascript请求并获取响应-不在jsonp中

向另一个域发送javascript请求并获取响应-不在jsonp中,javascript,ajax,json,jsonp,Javascript,Ajax,Json,Jsonp,我真的在这里绞尽脑汁了一天多,我正试图发送一个请求并从另一个网站得到回复。我正在用jsonp做这件事(出于显而易见的原因)。但是响应不是JavaScript函数定义,所以它总是失败 这个星球上有人能帮我找到正确的答案吗 我再次附上了我编写的代码:因为响应不是json格式,所以无法工作。(试着自己运行,你会看到的) 有什么建议吗 <script> function test() { $.ajax({ dataType: 'jsonp', jsonp: 'js

我真的在这里绞尽脑汁了一天多,我正试图发送一个请求并从另一个网站得到回复。我正在用jsonp做这件事(出于显而易见的原因)。但是响应不是JavaScript函数定义,所以它总是失败

这个星球上有人能帮我找到正确的答案吗

我再次附上了我编写的代码:因为响应不是json格式,所以无法工作。(试着自己运行,你会看到的)

有什么建议吗

<script>
function test()
{
  $.ajax({
      dataType: 'jsonp',
      jsonp: 'jsonp_callback',
      url: 'https://www.facebook.com/ajax/typeahead/first_degree.php?viewer=1000009843914&token=1-1&filter[0]=user&options[0]=pending_request&lazy=1&token=v7&stale_ok=1&__a=1&__user=1000009843914&    viewer=1000009843914',
  });
}
function jsonp_callback(data)
{

 var val=JSON.stringify(data);
 myString = val.slice( 11 );
 $('#container').html(myString);

/*for (;;);*/
 }
 test();
</script>

功能测试()
{
$.ajax({
数据类型:“jsonp”,
jsonp:'jsonp_回调',
网址:'https://www.facebook.com/ajax/typeahead/first_degree.php?viewer=1000009843914&token=1-1&filter[0]=用户和选项[0]=挂起的请求&lazy=1&token=v7&stale\u ok=1&\u a=1&\u用户=1000009843914&viewer=1000009843914',
});
}
函数jsonp_回调(数据)
{
var val=JSON.stringify(数据);
myString=val.slice(11);
$('#container').html(myString);
/*对于(;)*/
}
test();

必须对服务器进行编程,使其在脚本文件中包含JSONP回调。如果它只知道返回JSON,那么当动态脚本标记插入到页面中时,它将没有效果,因为JSON最多只能提供一个对象——但除非同一个文件调用该函数,否则它不会去任何地方。这样,它就不同于Ajax,因为动态插入的脚本标记只有在知道调用某个函数时才能与您自己的代码交互。例如,它可能会返回:

jsonp_callback({facebooKData:[...]});

您应该调查facebookapi是如何支持JSONP(而不仅仅是JSON)的。通常,API会接受一个“callback”变量,以确定它应该使用哪个回调函数(jQuery为您处理哪个回调函数)。

我编辑了您的问题以使其更清楚。JSONp可以在非JSON负载下正常工作,但是服务器必须将内容封装在JavaScript函数定义中,该函数定义在调用时返回数据。我如何创建这个请求,使它即使不是json响应也能成功?