Сенча Touch - AJAX не работает - PullRequest
       12

Сенча Touch - AJAX не работает

2 голосов
/ 18 августа 2011

Так что это работало до тех пор, пока я не сделал одно изменение, и теперь оно работает только тогда, когда я получаю доступ к мобильной версии сайта через Chrome, но больше не на любых мобильных устройствах. Странно то, что, поскольку он работает через браузер Chrome, я не могу воспроизвести проблему. Это мой вызов AJAX:

Ext.Ajax.request({
                            url: '/Home/PostMessage',
                            // url to post msg..
                            method: 'POST',
                            params: {
                                message: Ext.getCmp('msgText').getValue(),
                                lat: initialLocation.lat(),
                                lng: initialLocation.lng(),
                                loc: loc,
                                name: '',
                                parentId: 0,
                                FBId: 0
                            },
                            success: function() {
                                //Ext.getCmp('post-bar').hide({type: 'pop'});
                                Ext.getCmp('post-bar').hide();
                                setTimeout(function() {
                                    Ext.getCmp('posts-tab').doComponentLayout();
                                },
                                300);
                                jabsy.stores.Listpost.load();
                            },
                            failure: function() {
                                navigator.notification.alert('Could not post your message', // message
                                'Server Error!', // title
                                'OK' // buttonName
                                );
                            }
                        });

Единственное, что я добавил, это добавление параметра FBId к пост-параметрам. Метод действия, который получает параметры, выглядит следующим образом:

public ActionResult PostMessage(double? lat, double? lng, string message, string loc, string name, int parentId, int FBId)
        {
            var match = Regex.Match(message, @"^\s*(.)(?:\1|\s)*$");
            string ip = string.IsNullOrWhiteSpace(Request.ServerVariables["REMOTE_ADDR"].ToString()) ? "" : Request.ServerVariables["REMOTE_ADDR"];
            if (lat.HasValue && lng.HasValue && (message.Length <= 100) && !match.Success && !string.IsNullOrWhiteSpace(message))
            {
                DAL dal = new DAL();
                bool success = dal.spInsertMessage(message, lat.Value, lng.Value, ip, loc, name, parentId, FBId.ToString());
                return Json(success);
            }
            else
            {
                return Json(false);
            }
        }

Как я уже сказал, он все еще работает, если вы заходите на мобильный сайт из Chrome.

Если вы хотите протестировать его самостоятельно, перейдите по адресу www.jabsy.com / Home / MobileHome в браузере Chrome или Safari (должен быть webkit), попробуйте и подтвердите, что он работает, но он не публикует сообщения с мобильных устройств после добавления этого параметра. Я не могу на всю жизнь понять, почему. Никаких ошибок не появляется, они просто не будут публиковать сообщения.

Есть ли у Sencha Touch какой-либо лимит параметров AJAX или что-то в этом роде? Но даже если они это сделали, это также должно помешать ему работать через настольный браузер правильно ?? Я не могу на самом деле проверить, если он делает это на сервер, а затем что-то идет не так, или он просто никогда не делает это, потому что я не знаю ни одного способа проверить это с мобильного устройства, поэтому я в темноте о том, что происходит.

Так растерялся.

1 Ответ

1 голос
/ 18 августа 2011

Так что я понял это. Просто черт побери, вроде как вдохновленный комментарием Джои - я использовал свой телефон Android, чтобы очистить весь кеш / файлы cookie / историю просмотров из браузера, и попробовал его снова.

Теперь работает. Я понятия не имею, почему это произошло. Я обновил те же самые параметры раньше, например, когда я добавил параметр parentId прямо перед добавлением текущего нового, и эта проблема не возникла.

Понятия не имею, но вот что это решило. Если у кого-то есть идеи относительно того, почему или как предотвратить это в будущем, ПОЖАЛУЙСТА, прокомментируйте.

...