ajax数据类型json,Ajax请求不与数据类型“jsonp”或“JSON”

我想使用JSON作为Ajax请求(使用jQuery)的返回类型,但我的代码总是导致错误。我试过改变json和jsonp之间的MIME类型,但无济于事。Ajax请求不与数据类型“jsonp”或“JSON”

我也不确定是否正确格式化数据:部分。我知道我需要将所有信息都包含在JSON字符串中,但我不知道它是否正确。

$.ajax({

type: "POST",

url: '-----',

dataType: "jsonp",

data: '{"jobtitle":"job"}',

beforeSend:function(){ },

success: function(data){

var data = $.parseJSON(data);

},

error: function(){

alert("error with Ajax request");

}

});

编辑:这是我的服务器端代码。我不知道如何从中返回有效的JSON。

$jobtitle = $_POST["jobtitle"];

$city = $_POST["city"];

$state = $_POST["state"];

$url = "http://www.indeed.com/jobs?q=". $jobtitle ."&l=". $city ."%2C". $state;

$document = new DOMDocument;

$html = file_get_contents($url);

$document ->loadHTML($html);

$xpath= new DOMXPath($document);

$results = $xPath->query('//div[@id="searchCount"]');

$string = "";

if ($results){

for ($i=0; $i < $results->length; $i++) {

$node = $results->item($i)->textContent;

}

$exp = explode(" ", $node);

print "Number of jobs: ".$exp[5]. "";

}

+4

dataType是***返回***的数据,没有发送,所以你的服务器或任何你联系的返回有效的JSON? –

+2

显示您的服务器端代码请 –

2013-08-02 18:41:06

+1

我认为使用POST和jsonp是你的问题。 –

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Ajax跨域获取JSON数据是一种常见的前端技术,用于在浏览器中通过异步请求获取不同域名下的JSON数据。下面是一种常见的实现方式: 1. JSONPJSON with Padding):JSONP是一种利用<script>标签的src属性可以跨域加载资源的特性来实现跨域请求的方法。具体步骤如下: - 在前端页面中创建一个<script>标签,设置其src属性为目标服务器的URL,并传递一个回调函数名作为参数。 - 目标服务器接收到请求后,将JSON数据包装在回调函数中返回给前端。 - 前端页面中定义回调函数,用于处理返回的JSON数据。 2. CORS(Cross-Origin Resource Sharing):CORS是一种通过在服务器端设置响应头来实现跨域请求的方法。具体步骤如下: - 在目标服务器的响应头中添加Access-Control-Allow-Origin字段,设置允许访问的域名。 - 前端页面通过XMLHttpRequest对象发送跨域请求,浏览器会自动在请求头中添加Origin字段,表示请求的来源域名。 - 目标服务器接收到请求后,检查Origin字段,并在响应头中添加Access-Control-Allow-Origin字段,表示允许该域名访问。 3. 代理服务器:使用代理服务器是另一种跨域获取JSON数据的方法。具体步骤如下: - 在同域名下创建一个代理服务器,用于转发跨域请求。 - 前端页面发送请求给代理服务器,代理服务器再将请求发送给目标服务器。 - 目标服务器返回响应给代理服务器,代理服务器再将响应返回给前端页面。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值