0

有人告诉我 $.getJSON 是向外部服务器发送数据和从外部服务器发送数据的最佳方式。我可能浪费了 7 个小时的时间来尝试使用 JQUERY 的 Ajax 来这样做,只是为了发现没有浏览器允许这种类型的方法。我想使用 Jquery getJSON 发送数据,我使用 cakephp 作为我的接收端(即我的外部服务器) 这是我到目前为止所拥有的。

$.getJSON("http://play.mysite.com/usersessions/store/",{ data: "Hi!"});

我不想要回调,因为我不需要它。我只需要将一些数据发送到外部服务器。这是 MVC 站点,所以 usersessions 是我的控制器,store 是我的操作。

下面是我的 cakephp 代码。如果你不知道那很好。我只需要知道我是否正确发送了 getJSON 数据

<?php class UsersessionsController extends AppController {

var $name = 'Usersessions';
var $helpers = array('Html', 'Form','Ajax');
var $components = array('RequestHandler');


function store()
{
   Configure::write('debug', 0);
   $this->autoRender = false;

   if($this->RequestHandler->isAjax()) {
       if ($this->params['url']['data'])
       {
           $this->data['Usersession']['data'] = $this->params['url']['data'];
            $this->Usersession->Save($this->data);
            echo 'Success';
        }   
   }    
}

} ?>

谢谢!

4

2 回答 2

4

JQuery 提供了一种实现JSONP的简单方法,这是绕过浏览器中跨站点脚本安全策略的必要“技巧”。需要在请求的查询字符串中指定回调,以及服务器响应的一些特殊格式。

您的请求需要以如下方式实施:

$.getJSON("http://play.mysite.com/usersessions/store/?jsoncallback=?",
  { data: "Hi!"}, function(){});
于 2009-11-03T18:07:59.593 回答
1

getJSON() 用于从服务器读取 JSON 数据。如果你只是想从浏览器向服务器发送一些参数,只需使用 get() 而不要使用可选回调。

从文档:

请求 test.php 页面并发送一些额外的数据(同时仍然忽略返回结果)。

 $.get("test.php", { name: "John", time: "2pm" } );

http://docs.jquery.com/Ajax/jQuery.get#urldatacallbacktype

于 2009-11-03T18:07:46.997 回答