ajaxurl이 프런트 엔드에 정의되지 않았습니다
-
-
이 튜토리얼을 확인하십시오.도움이 될 수 있습니다.http://www.1stwebdesigner.com/implement-ajax-wordpress-themes/Check this tutorial. It may help you. http://www.1stwebdesigner.com/implement-ajax-wordpress-themes/
- 0
- 2015-06-03
- Nilambar Sharma
-
3 대답
- 투표
-
- 2015-06-03
백엔드에는 WordPress 자체에서 정의한 전역
ajaxurl
변수가 있습니다.이 변수는 프론트 엔드에서 WP에 의해 생성되지 않습니다. 즉,프론트 엔드에서 AJAX 호출을 사용하려면 이러한 변수를 직접 정의해야합니다.
이 작업을 수행하는 좋은 방법은
wp_localize_script
를 사용하는 것입니다.AJAX 호출이
my-ajax-script.js
파일에 있다고 가정하고 다음과 같이이 JS 파일에 wp_localize_script를 추가합니다.function my_enqueue() { wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') ); wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); } add_action( 'wp_enqueue_scripts', 'my_enqueue' );
JS 파일을 현지화 한 후 JS 파일에서
my_ajax_object
객체를 사용할 수 있습니다.jQuery.ajax( { type: "post", dataType: "json", url: my_ajax_object.ajax_url, data: formData, success: function(msg){ console.log(msg); } });
In backend there is global
ajaxurl
variable defined by WordPress itself.This variable is not created by WP in frontend. It means that if you want to use AJAX calls in frontend, then you have to define such variable by yourself.
Good way to do this is to use
wp_localize_script
.Let's assume your AJAX calls are in
my-ajax-script.js
file, then add wp_localize_script for this JS file like so:function my_enqueue() { wp_enqueue_script( 'ajax-script', get_template_directory_uri() . '/js/my-ajax-script.js', array('jquery') ); wp_localize_script( 'ajax-script', 'my_ajax_object', array( 'ajax_url' => admin_url( 'admin-ajax.php' ) ) ); } add_action( 'wp_enqueue_scripts', 'my_enqueue' );
After localizing your JS file, you can use
my_ajax_object
object in your JS file:jQuery.ajax( { type: "post", dataType: "json", url: my_ajax_object.ajax_url, data: formData, success: function(msg){ console.log(msg); } });
-
`wp_enqueue_scritp`를 사용하지 않고`wp_localize_script`를 사용할 수 있습니까?can I use `wp_localize_script` without having to use `wp_enqueue_scritp`?
- 2
- 2015-06-03
- dread_cat_pirate
-
wp_localize_script에서 스크립트 핸들을 사용하므로 적어도 하나의 스크립트에 wp_enqueue_script를 사용해야합니다.하지만 ... wp_enqueue_script를 사용하지 않는 것은 좋은 생각이 아닙니다 (충돌 및 종속성 문제의 위험이 있습니다).You use script handle in wp_localize_script, so you have to use wp_enqueue_script for at least one of your scripts. But... Not using wp_enqueue_script is not a good idea (you risk some conflicts and dependencies problems).
- 1
- 2015-06-05
- Krzysiek Dróżdż
-
로드 할 외부 스크립트가 없습니다. ajaxurl을 사용하여 ajax 호출을 만들고 싶습니다.가능하지 않습니까?i don't have any external script to load, i just want to use ajaxurl to make an ajax call. is that not possible?
- 0
- 2015-09-23
- R T
-
그리고이 AJAX 호출을 어디에 넣을 것입니까?인라인 스크립트로?아주 나쁜 생각이야 ...And where will you put this AJAX call? As inline script? It's a very bad idea...
- 0
- 2015-09-23
- Krzysiek Dróżdż
-
나는 검증을 관리하고 제출시 후크를 추가하여 물론 wordpress 방식으로 양식을 제출하는 ajax 호출을 관리하고 있다는 별도의 양식이 있습니다.어쨌든 나는 ajaxurl을 사용하는 방법을 알아 냈습니다.i've a separate form, in that i'm managing validation and on submit, an ajax call to submit form with of course wordpress way by adding hook. anyway I've figured out the way for using ajaxurl.
- 0
- 2015-09-23
- R T
-
굉장합니다 ... 나는 프론트 엔드의 Javascript에서 사용하고 있으며 매력처럼 작동합니다. :)Awesome... I'm using it in my Javascript on front end and works like a charm :)
- 0
- 2017-10-17
- Omer
-
- 2015-09-23
ajaxurl을 직접 사용하려면 플러그인 파일에 다음을 추가하세요.
add_action('wp_head', 'myplugin_ajaxurl'); function myplugin_ajaxurl() { echo '<script type="text/javascript"> var ajaxurl = "' . admin_url('admin-ajax.php') . '"; </script>'; }
그런 다음 ajax 요청에
ajaxurl
을 사용할 수 있습니다.to use ajaxurl directly, in your plugin file add this:
add_action('wp_head', 'myplugin_ajaxurl'); function myplugin_ajaxurl() { echo '<script type="text/javascript"> var ajaxurl = "' . admin_url('admin-ajax.php') . '"; </script>'; }
you can then use the
ajaxurl
for ajax request.-
이 답변은`ajaxurl`을 기본 사용법과 비슷하게 만듭니다.받아 들여지는 대답보다 훨씬 낫습니다.This answer makes `ajaxurl` similarly the same as the default usage. Which is much better than the accepted answer.
- 2
- 2018-12-25
- Abel Melquiades Callejo
-
사실이지만 .js 파일에서 사용하는 경우 쓸모가 없습니다.true, but it's useless if you are using it in a .js file.
- 0
- 2019-03-20
- Jules
-
@Jules`ajaxurl`은`* .js` 파일에서 계속 사용할 수 있습니다.이렇게하려면 페이지로드 초기에`ajaxurl` 변수를 선언해야 할 수 있습니다.고려해야 할 또 다른 사항은 외부`* .js` 파일을 호출하는 것입니다.외부 파일은`ajaxurl`이 인스턴스화되고 올바른 URL 값이 주어지면 ** 이후 ** 호출되어야합니다.@Jules `ajaxurl` is still available in a `*.js` file. To do so, you may need to declare the `ajaxurl` variable early on of the page load. Another thing to consider is the calling of the external `*.js` file of yours. The external file should be called **AFTER** the `ajaxurl` has been instantiated and be given the right URL value.
- 1
- 2019-11-09
- Abel Melquiades Callejo
-
콘솔의 오류는 무엇입니까?what's an error in console?
- 0
- 2020-01-29
- Dharmishtha Patel
-
- 2020-01-28
Wordpress 사이트에서 아래 코드를 사용하고 있습니다.
이와 같이 ajaxurl을 설정하기 위해 아래 코드를 사용할 수 있습니다.<?php echo esc_url(admin_url('admin-ajax.php')); ?>
위 줄에서 사용할 수있는 ajax 예제도 추가했습니다.
function setNotificationRead() { fetch('<?php echo esc_url(admin_url('admin-ajax.php')); ?>', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' }, body: `action=yourFunctionsAction`, credentials: 'same-origin' }).then(response => { return response.json(); }).then(data => { if (data.status === 'true') { console.log('Do something...'); } }); }
i have use below code in wordpress site.
we can use below code for setup ajaxurl like this.<?php echo esc_url(admin_url('admin-ajax.php')); ?>
i have also added ajax example were we can use above line.
function setNotificationRead() { fetch('<?php echo esc_url(admin_url('admin-ajax.php')); ?>', { method: 'POST', headers: { 'Content-Type': 'application/x-www-form-urlencoded; charset=utf-8' }, body: `action=yourFunctionsAction`, credentials: 'same-origin' }).then(response => { return response.json(); }).then(data => { if (data.status === 'true') { console.log('Do something...'); } }); }
앞면에 ajaxform을 만들려고합니다.코드를 사용하고 있습니다.
오류가 발생합니다
관리자 백엔드에서 유사한 코드를 사용하는 동안 작동합니다.Ajax 요청을 처리하려면 어떤 URL을 사용해야합니까?