Как прикрутить к MVC работу с Ajax?

Как отправить POST запрос Ajax`ом, если URL такого вида:
//mysite.ru/autorization/name/pupkin/pass/123
Есть ли способ отправки таких данных?

А если нет, каким способом заставить понимать такой URL: //mysite.ru/autorization?name=pupkin&pass=123

.htaccess таков:
RewriteEngine on
RewriteBase /
AddDefaultCharset utf-8
 
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-l
RewriteRule ^(.*)$ index.php?/$1 [QSA,L]
  • Вопрос задан
  • 3150 просмотров
Решения вопроса 1
Fesor
@Fesor
Full-stack developer (Symfony, Angular)
Как отправить POST запрос Ajax`ом, если URL такого вида:
//mysite.ru/autorization/name/pupkin/pass/123


А зачем извините вам тогда POST? Фигачте GET-ом. Вы понимаете вообще что вы таким образом выкладываете пароль на всеобщее обозрение? Никакие SSL не спасут.

А так, возьмите любую библиотеку для маршрутизации либо разбирайте запрос на сервере. Но имхо вы делаете большую глупость отправляя таким образом данные. Да, вы можете в query string пихать данные при post запросе и урлы разбирать, но толку тогда от POST?

Это грустно...
Ответ написан
Пригласить эксперта
Ответы на вопрос 3
viktorvsk
@viktorvsk
Видимо, у вас проблемы с авторизацией. Для этого люди придумали сессии. Один раз авторизуетесь, например, аяксом вот так:
$.post('http://example.com/auth', data: { pass: "qwerty", pass_confirmation: "qwerty" })
, как-то так. Сервер создает для вас сессию, возвращает кукис с этой сессией. Вы ее храните и дальше по страничкам лазите, без нужды авторизации на каждой.

Может быть, это был экстрасенс-мод, но если проблема в другом, то никак не пойму, в чем заключается "работа аякса и мвц".

Я так понял, проблемы тут не с роутингом.
Да и вообще, пробуйте типичные задачи решать готовыми средствами (фреймворки). Кучу времени сэкономите
Ответ написан
Комментировать
baskerville42
@baskerville42
Учусь работать (Junior)
Возьмём за пример фреймворк ExpressJS работающий на платформе NodeJS
в нём можно сделать парсинг URL таким образом
app.get('/fruit/:fruitName/:fruitColor', function(req, res) {
    var data = {
        "fruit": {
            "apple": req.params.fruitName,
            "color": req.params.fruitColor
        }
    }; 

    send.json(data);
});

Это как пример отправки данных на сервер.
Если же параметры надо парсить на клиенте, то у того же AngularJS есть возможность парсить параметры из такого вида URLов
.when('/pages/:pageName', {
            templateUrl: 'views/single.html',
            controller: 'singlePageController'
        })
Ответ написан
HaJIuBauKa
@HaJIuBauKa
А почему бы и нет (не вдаваясь в вопрос о том зачем вам такие манипуляции с паролем, хотя это интересно)?
Во-первых какой MVC вы используете?
Нормальному MVC по-боку сколько там роутов в УРЛ, он распарсит и все вам выложит как массив. А в пост данных придут параметры.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы