HTTPS上的jQuery Ajax调用


jQuery Ajax call on HTTPS

我有一个表单,需要三个步骤来填写它。在这些步骤中,你填写一些信息,点击"下一步",然后看到你必须修复的错误,以便进入下一步,或者如果没有错误,它会带你到下一步(将CSS中的"display"更改为"block")。

第一步,它使用$.ajax()调用文件lib/ajax.php返回一些JSON的结果,这对填充表单的其余部分很重要。事情是这工作在本地我的http://my.dev地址,但住在https://something.example.com它不。

我应该先从哪里着手呢?最常见的解决方法是什么?

lib/ajax.phpindex.php文件(有jQuery调用)在同一个域(https://something.example.com)上,所以我们不是在谈论跨域调用。

下面是一些代码

$.ajax({
   type: 'GET',
   url: 'lib/ajax.php', 
   async: false,
   data: {id: id}, 
   dataType: 'json', // what type of data do we expect back from the server
   }).done(function(data){
       // do stuff with data
});

lib/ajax.php

//stuff with db and retrieving row by id
header('Content-type: application/json');
echo json_encode($result);

差不多了。它不工作,当我把它放在现场HTTPS服务器

在https中,我认为你必须将dataType: 'json'更改为dataType: 'jsonp'

1。检查函数$.ajax()中给出的url是否为正确的路径。

2。这里你指定的数据类型为"JSON",所以响应必须是"JSON"。

3。如果响应不是正确的JSON格式,则会产生问题。

  contentType: "application/json; charset=utf-8"

将上述代码添加到$.ajax()函数

请检查以上指定点